一.內建函式常用
1.類(類的定義和例項化)
為什麼要有類?
因為程式是要面向多人的,會有很多資訊,資料,功能的冗餘,所以需要進一步封裝,封裝後在需要和使用時進行提取。為了便於區分,把用關鍵字 class 定義的程式碼塊稱為 類
程式設計可以理解為一個虛擬世界,而類在其中則表示一個物體,類中的變數相當於類的屬性,屬性則是對物的描述;類中的函式相當於方法,方法則是物體的功能。而類則是封裝相關的變數和函式
而關於類的使用,我們通常使用一個關鍵字class,定義類來進一步封裝。
定義類的語法規則:class 類名:(類名:命名規範是首字母大寫)
在名字,性別,還有學習上是不同的,但在吃飯,睡覺,學習上是一致的。所有我們可以使用類對圖中函式進行封裝,在使用時再拿出來呼叫。透過這樣的封裝,把和人相關的變數、函式等放在了一起,只要找到這個部分程式碼,就能知道關於人已經定義了哪些變數和函式。借鑑函式的封裝思維,再次對函式和變數進行封裝,來提高程式碼的複用性
在函式中,函式的過程包括:
(1).定義函式(2).呼叫函式
而在類中,類的過程則是:
(1).定義類(2).例項化類(物件)
##面向物件:用面向物件的思維去解決問題。將某一類事物相關的屬性和方法封裝在一起,用來表示這類事物。
2.初始化函式(init)
在例項化時會自動呼叫,格式為 def int(一個變數,屬性,屬性…) :
3.解構函式(del)
二. 繼承和重用
1.繼承
透過繼承可以很好的提高程式碼的複用性
透過在類後面的跟上要繼承的來確定父類
如上圖所示,貓和狗都有吃飯和睡覺的特點,而這個特點是所有動物共有的。所有我們可以將動物的這些特性用類來表示,再將他作為父類繼承給別的函式或是類。
如圖所示,我們將動物的特點作為類繼承給了貓和狗。(pass表示留白,是個佔位符)
##object類 :超類,是所有類的父類
2.重用
子類重新定義父類方法,讓同一方法有不同的行為
如果子類想繼續使用父類的行為,推薦使用super函式方法來實現
如圖所示,因為貓和狗所吃食物不同,所有我們需要對 eat 進行重用
三.多繼承
多繼承時,只需要在繼承時增加需要繼承的類即可,將繼承的手法升級功能,不改變已實現的功能(方便撤銷,錯誤不影響原有系統)
假設兒子同時想要跳廣場舞和街舞,我們就需要多繼承,如下:
而這裡的 super 相當於 Father 和 Mother
繼承順序:
透過呼叫__base__ 和 bases 可以看到,類繼承的第一個和所有類
透過mro方法可以看到類的mro查詢順序
Python對於所有類會自動生成mro查詢順序,此順序決定了向上查詢方法的過程
假設多個父類同時存在一個函式是相同的,例如,父親和母親都會跳舞,我們則會按照mro方法繼承第一個。