《python爬爬樂》入門篇:python面向對象設計看這一篇就夠了

前言

學面向對象對於python語言來說,其實並沒有那麼重要,因爲我們一般使用python開發一些小功能。但以後說不定會開發一些中大型項目,所以面向對象設計還是要了解一下滴。

面向對象編程就記住一句話:萬事萬物皆對象!

https://img-blog.csdnimg.cn/20190304153012401.png

大哈:“小四,今天午餐想喫什麼?”

小四:“想喫的東西可多啦,兩塊麪包,一塊雞胸肉,還要幾片生菜,還想喫土豆條,最好是剛炸出來的,還想喝點什麼湯之類的”

大哈:“小四,你四不四撒啊!你就說你想喫雞肉堡套餐不行麼 !(#‵′)凸”

小四:“呃,好吧,我確實想喫開封菜的雞肉堡套餐...”

相信大家從上面的例子可以簡單理解什麼是面向對象了吧。

初學者可以這樣理解:把一些有關係的數據和行爲放在一起,就變成了對象。

 

分析

接下來我們來一一解釋面向對象的一些概念:類、對象、屬性、方法、封裝、繼承、多態,通過這些概念再來理解什麼是面向對象。

上面的示例中,有哪些對象呢?我們來簡單分析一下。

雞肉漢堡套餐對象:包含的屬性有套餐名字、套餐內容(雙層雞肉漢堡,薯條,蘑菇湯)、套餐價格等

雞肉漢堡:包含的屬性有原料列表(一個麪包,一片雞肉,三片生菜,5克沙拉醬等)、重量、生產日期等

薯條:包含的屬性有重量、包裝袋、口味、單價等

蘑菇湯:包含的屬性有份量(大份、中份、小份)、單價、口感等

第五個:......

有沒有發現,我們可以這樣一直分析下去,可以列出無窮無盡的對象!

那就對了,這就是面向對象編程分析。實際開發中我們不會這樣不斷分解,沒必要把一個對象分解成原子。

一般我們會根據功能來分析具體有哪些對象,如果有一些對象具有相同的屬性和方法,我們會把它們歸於一類。具體如何分析就是我們接下來的內容了。

 

基本概念介紹

一、類:類就是對一組具有相同屬性和方法的對象的抽象,簡單說就是一個概念,比如“女神”就是一個類,這是一個抽象的概念,“女神”有多高?身材有多好?年齡多大?這些屬性是各種“女神”所共有的屬性,但具體的屬性值就沒辦法確定了。

女神類

 

二、對象:對象是類的一個實例,簡單說就是一個真實存在的具體的實物。比如有些胖友的女神就很具體。如下圖中的幾位女神:

林姐姐
蒼井姐姐
賈大姐

 

三、屬性:

性就是對象的特徵,是名詞。比如上面的女神都有身高、體重、姓名、年齡和三圍等·

林姐姐:身高-173cm,體重-54kg,姓名-林志玲,年齡-43,三圍-保密。

蒼井姐姐:身高-155cm,體重-45kg,姓名-蒼井空,年齡-34,三圍-保密。

賈大姐:身高-166cm,體重-保密 ,姓名-賈玲,年齡-35,三圍-保密。

四、方法:

方法就是對象的行爲,是動詞或動名詞。

林姐姐有游泳()、跑步()和拍廣告()等方法。

蒼姐姐有拍寫真()、拍電影()等方法。

賈大姐有演小品()、唱歌()等方法。

五、封裝:

封裝很好理解。最近雙十一剛過,大家都有收到很多的快遞吧,快遞用包裹就是一種典型的封裝行爲。一個包裹裏面可以包含很多物品。

封裝最大的好處就是隱藏細節數據,只預留使用者關注的功能接口就OK了。

比如電視機從使用者的角度,我們只關心這些功能:開機、關機、換臺等。這些功能如何實現的,對應的電子電路圖是什麼樣的,使用了什麼樣的電路板等,我們完全不關心,也不用關心。

六、繼承:

繼承也很好理解。龍生龍,鳳生鳳,老鼠的兒子會打洞。當然,如果出現了下圖這種不合理的場景,就要問問隔壁老王了。

七、多態:

面向對象中的多態是指,不同對象的相同行爲,有不同的執行效果。比如你讓不同的葫蘆娃執行“放大招()”這個方法,對應的效果就不一樣。

今天就先介紹這些基本概念吧。以後需要使用面向對象設計時,我們再介紹對應的python語法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章