Python的類和對象 入門級講解(簡單粗暴)

來源:互聯網
上載者:User

標籤:生活   nbsp   cbe   http   follow   sel   作者   raw   小白   

 前言本人是Python初學者。在學到Python的類和對象的時候,被‘高深’的概念虐得死去活來。上網提問,得到的回複幾乎都是‘大神們’藏著掖著迫不得已才擠出來的隻言片語;上網搜文章,長長的篇幅,那些字都認得,但是就是不知道是什麼意思,並且都是反覆地複製粘貼而導致文章排版極其辣眼睛。

一個陰鬱的冬天,我在YouTube上搜到一個視頻作者John Philip Jones,發現一個關於Python類和對象的講解。這是目前為止我看到的最利於小白學習Python的講解方法。由於在國內上YouTube不方便,打算寫個文章把內容搬運過來,同時加入一些自己的學習心得,希望可以為像我一樣小白中的小白提供這些資訊。

著作權作者,再次重複三遍:John Philip Jones, John Philip Jones,John Philip Jones

 首先,我已經假定你已經看了無數遍的垃圾文章,然後依然搞不懂類和對象,但是呢起碼知道有類和對象這麼兩個玩意兒。

由於你沒有編程經驗,所以無法從學過的程式設計語言裡通過類比去理解Python的‘類和對象’。咱們用生活中的例子來說說,建房子。

類(class): 相當於施工圖紙(blueprint)

對象(object):房子(已經建造好的)

假設你手上有施工圖紙(Blueprint),裡面有房子的所有資訊(蓋幾層,廚房在哪,臥室在哪,怎麼建)。

你已經在憧憬你以後在這個新家的生活了,買貴的傢具,在廚房做好吃噠........但是呢,這些都是你的YY,你要做這些事情必須要等房子真正建好了以後才行。如果房子中途爛尾,你就啥也做不了,夢想無處安放。

所以說,‘一個建好的房子’很重要。在Python中,‘一切皆為對象’,這也是大家稱之為 object oriented的意思。有了對象,咱們才能搞事情!!!

接著來:

對於建好的房子也許會稍稍不一樣,每個人都有各自的喜好,就像圖中看到的,可能是房子的戶型一樣,但是呢,顏色不一樣。重點:它們都是根據‘施工圖紙’造出來的。

----------------------------------------------------------

例子結束,帶著例子中想表達的‘精神’,咱進入Python來看看‘類和對象’:

用變數賦值來說:a = 2

據說按照咱一般的理解,建立一個變數命名為a,然後賦值2。相當於把2放進名叫a的籃子裡,blablablabla.....

滾粗!讓我們這次從另外一個角度來考慮 a = 2 這個問題,開始:

當你在Python中打出 a = 2, 然後斷行符號。Python中有一個叫 ‘integer class’ 的玩意兒被‘喚醒’。

然後,這個integer class會跟你的要求,在執行區‘建立’一個對象,這個對象是根據integer class的施工圖紙創造的。所以,這個對象(圖中圓圓的東西)會有integer class的特徵或者屬性。(這個過程,就是你看到房子就快建好了)

還記得那個 a = 2裡面的 a 嗎?它要去哪裡?

因為語句,a 是要等於(=)2的,因為你按了斷行符號,哈哈

所以呢...........

a會作為一個標籤,跟這個對象(圓圓的東西)掛鈎。(房間建好了,可以拿鑰匙住進去啦)

------------------------------------------------

臥槽,老王在隔壁也買了房子!?!? 這時,又建立了一個對象(圓圓的東西)

b = 3

老王拿著鑰匙住進去了,b作為標籤就綁在了建立的對象上。

最後再說幾點:

可以看到每次建立對象(圓圓的東西),它們的ID都是不同的。

然鵝..........如果我們把 b = 3 改成 b =2, 咦?我們不是已經有了a = 2了嗎?說好的自掃門前雪呢??

這就意味著隔壁老王的魔爪要伸過來了.....

當改成 b = 2, integer class不會重新創造一個對象。而是把 b(隔壁老王)作為標籤,綁在之前已經建立的那個(a = 2)的對象上。(請看)

最後再說倆句:在Python中,對於 a = 2 而言,不要認為是把數值2放進a的籃子裡!!!!

應該是a作為標籤,掛在對象(數值為2)上!!!!對象很重要!!!!就是圖中那個圓圓的東西!!!!!!對象很重要!!!!

到此為止,僅僅是開了頭。後面還涉及到很多關於類和對象的操作,並且每個對象裡面的那個ID也很重要(涉及到method的引用,還有self的問題)

但是一旦你有了這個思路之後,編寫物件導向程式的時候,簡直是爽,例如:

 

Python的類和對象 入門級講解(簡單粗暴)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.