物件導向One

方圓幾公里發表於2017-07-25

上了倆星期的python課,今兒開始講物件導向了..以前在學校學javaSE的時候(看來我還是去上過課的..)就聽說過”物件導向””物件導向”..今兒終於見識了!!然後就是一臉懵比...全程雲裡霧裡..GG

我在百度上簡單搜了一個python中物件導向和類的基本語法,看著還不錯....

看程式碼:>>> a = “scoloa”   >>> a.supper()    為什麼我只建立是為 a 賦值,就可以使用一些我沒寫過的方法? 可能會有小夥伴說:因為 a 此時是個字串物件呀,當然能夠使用字串的方法,至於這些方法,那是python事先寫好的。 好吧,那換個問題,為什麼 python 知道它是個字串物件? 在深入講這個問題之前,先記住一句話:python中一切皆物件,物件都是由類建立的。 那麼類是什麼東西呢?我在這舉個例子。 有一天,我在街上走著,突然看見前面有一個仇人。此時我想揍他一頓,但是力是相互作用的呀,打他我的拳頭也會疼。誒,此時我發現路邊有個石頭,大小形狀正合適,在不考慮警察叔叔怎麼想的前提下,這是一個好的選擇。然後我抄起石頭,對著仇人進行了一些好孩子不能模仿的行為,然後深藏功與名,收工回家。 在這個過程中,我們為什麼會知道那塊東西是石頭? 因為它的具有石頭的外觀特徵呀! 為什麼我們會知道石頭可以砸人? 因為石頭硬呀! 為什麼我們知道石頭是硬的? 因為......嗯.....小時候我爸告訴我的。 此時可以得到一個結論:我們知道一個東西是什麼,具有什麼功能,是因為我們的腦海中已經有個這個東西的概念。而這個概念可能是從長輩那裡知道的,也可能是自己各種實驗後自己總結的。類似於我們對於‘黑洞'這個東西的認識,還是科學家的各種研究總結而來。 如何將用石頭打人這個例子用程式碼來實現的話:

classStone(object): #建立一個Stone的類   def attack(self):   Print(“把頭伸過來,我送你一場造化.”) a = Stone() #用類建立了一個物件 A.attack() #使用這個物件的方法 ? 很好,這樣我們就完成了我們的需要了。 如果我們再建立其他物件:

a = 123 a.attack() AttributeError:”int”object has no attribute “attack”

很顯然python並沒有為我們準備 attack 方法,所以就用不了。 所謂的類只是一個抽象的定義,而例項則是具體的物件。它們之間的差別就想我腦海中的石頭和我手中的石頭一樣,只有後者才真實存在。當然,這裡不要跟我講什麼唯心主義論什麼的。 看到這裡,關於類和物件之間的關係應該清楚了一些。有些同學可能會問:python中的類都是我們事先寫好的,有沒有方法讓python自動生成類,然後在特定的時候使用這些類呢?恭喜你,同學,你可能摸到了人工智慧的門檻了,如果能夠實現的話,那和我們人類的學習能力不是差不多嗎?好吧,這只是我的一個設想,真正的人工智慧要怎麼實現,我也不知道,還沒有這麼高的水平去研究先,不過作為一名程式設計師,能夠編寫人工智慧,可能是終身的追求了吧。

總結一家花..看這個我居然看懂了!!!但反過來再看程式碼,又GG了...看來以後得多看看物件導向的程式碼了..今兒就到這了....

相關文章