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

TAG:Python | Python入门 | 面向对象编程 |