Python面向對象編程從零開始(1)——從沒對象到有對象
前言
最近在寫關於自然語言處理的文章,but,沒對象啊,這可是個大問題。
莫慌,看完本文,你就能有對象了。
人生苦短,我選Python,其他空餘的時間可以和對象一起玩耍。。。(此處省略n字)
對象和類
當然,此對象非彼對象。
360百科對對象的描述如下:
還記得小時候玩過的印章么,hellokitty那種印章:
360百科我表示看不懂,那就舉個栗子。
如果對象是一個具體的存在,而類是產生對象的模版(為了幫助理解,描述的可能不是那麼準確)
就像印章是類,對象則是印出來的圖形。
就像化妝品是類,則CHANEL、Lanc?me、Estee Lauder、Christian Dior等是對象(我也不知道我怎麼會知道這些。。。)。
所以類是對對象的抽象。
面向對象和面向過程
我們一開始,例如大學學的C語言,是面向過程的,總的執行流程是順序的,任何功能等的實現都是自己要寫代碼的。
現在說的面向對象和之前熟悉的面向過程可用下面的例子解釋:
假如你想吃烤魚:
面向過程:自己動手,從買魚,洗魚洗菜,烤魚,加調料,裝入盤子,端上桌,吃!!!(還要洗碗)
while(沒吃膩):
體重++
面向對象:來到烤魚店,點菜單,吃!!!,結賬走人。
做人做要緊開心~
所以可以總結如下:
面向過程:自己靠雙手按照流程解決問題。
面向對象:找個對象,讓她做,自己輕鬆了。
兩者都是解決問題的一種思路,但這個總結總是感覺哪裡不對。
類的描述:類名,屬性,方法
class 類名(大駝峰命名法):n #屬性n n #方法n def xxx():n passn
類名:類的名字
屬性:類的屬性
方法:類的方法
這解釋。。。【掀桌
類的屬性可以認為是在類里對象里定義的變數。
這裡的方法,注意到是def 定義的,可以理解為函數!!!
定義一個類
class Car:n n def drive(selt):n print(我正在開車)n n def turnover(self):n print(翻車了)n
class後面定義的就是一個名為Car的類。
def定義的是類的方法(理解為類里的函數),這裡定義了兩個方法,開車和翻車。
創建一個對象
年輕人,聽說你沒對象?
沒事,我們自己創建一個。
#創建一個對象nxiao_jie_jie=Car()nnxiao_jie_jie.drive()#調用xiao_jie_jie指向的對象的方法nxiao_jie_jie.turnover()n
運行結果:
看來小姐姐翻車了。。。
類的三要素集合
類的名稱(Car),方法(開車,翻車)都有了,還差屬性。
class Car:n n def drive(selt):n print(我正在開車)n n def turnover(self):n print(翻車了)n n#創建一個對象nxiao_jie_jie=Car()nxiao_jie_jie.drive()#調用xiao_jie_jie指向的對象的方法nxiao_jie_jie.turnover()nn#添加屬性,屬性就是變數nxiao_jie_jie.name = 王夢瑤nxiao_jie_jie.age = 20nprint(%s的年齡是:%d%(xiao_jie_jie.name,xiao_jie_jie.age))n
這裡小姐姐的名字純屬虛構(如有雷同,別噴我,你可以認為這是緣分啊~~~)
這裡屬性有name和age,或許可以有那啥???算了,怕被河蟹。
運行一下程序
是不是發現程序竟然可以這樣寫,很好玩吧,之後會連載的啦~想知道女司機的後續故事么,請持續關注!
作者:王大偉 Python愛好者社區唯一小編,請勿轉載,謝謝。
出處:Python面向對象編程從零開始(1)--從沒對象到有對象 -配套視頻教程:Python3爬蟲三大案例實戰分享:貓眼電影、今日頭條街拍美圖、淘寶美食 Python3爬蟲三大案例實戰分享 公眾號:Python愛好者社區(微信ID:python_shequ),關注,查看更多連載內容。加小編個人微信:tsdatajob ,跟作者互動,一起探討。
推薦閱讀:
※如何把思維從面向過程轉向面向對象?
※為何少部分語言如C++和python要堅持引入多繼承?
※arraylist和array在內存分配和調用、編譯上有什麼本質區別?
※MATLAB高級數據結構連載5: table 2