Python類和對象
類和對象:
- 類(Class): 用來描述具有相同的屬性和方法的對象的集合。它定義了該集合中每個對象所共有的屬性和方法。對象是類 的實例。
- 方法:類中定義的函數。
- 類變量:類變量在整個實例化的對象中是公用的。類變量定義在類中且在函數體之外。類變量通常不作爲實例變量使用。
- 數據成員:類變量或者實例變量用於處理類及其實例對象的相關的數據。
- 方法重寫:如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱爲方 法的重寫。
- 實例變量:定義在方法中的變量,只作用於當前實例的類。
- 繼承:即一個派生類(derived class)繼承基類(base class)的字段和方法。繼承也允許把一個派生類的對象作爲一個基類 對象對待。例如,有這樣一個設計:一個Dog類型的對象派生自Animal類,這是模擬"是一個(is-a)"關係(例圖, Dog是一個Animal)。
- 實例化:創建一個類的實例,類的具體對象。
- 對象:通過類定義的數據結構實例。對象包括兩個數據成員(類變量和實例變量)和方法。
- 類定義:Class關鍵字(Class Person:)
- 類對象:
- 類對象支持兩種操作:屬性引用和實例化。
- 屬性引用使用和 Python 中所有的屬性引用一樣的標準語法:obj.name。
- 類對象創建後,類命名空間中所有的命名都是有效屬性名。
12. self代表類的實例,而非類:
類的方法與普通的函數只有一個特別的區別——它們必須有一個額外的第一個參數名稱, 按照慣例它的名稱是 self。
13. 類的方法:在類的內部,使用 def 關鍵字來定義一個方法,與一般函數定義不同,類方法必須包含參數 self, 且爲第一個參數,self 代表的是類的實例。
14. 繼承:Python 同樣支持類的繼承,如果一種語言不支持繼承,類就沒有什麼意義。
15. 多繼承:Python同樣有限的支持多繼承形式
16. 方法重寫:super() 函數是用於調用父類(超類)的一個方法。
17. 類屬性與方法:
1. 類的私有屬性:__private_attrs:兩個下劃線開頭,聲明該屬性爲私有,不能在類地外部被使用或直接訪問。在類內部的方法中使用時 self.__private_attrs。
18. 類的方法:
- 在類地內部,使用 def 關鍵字來定義一個方法,與一般函數定義不同,類方法必須包含參數 self,且爲第一個參數,self 代表的是類的實例。
- self 的名字並不是規定死的,也可以使用 this,但是最好還是按照約定是用 self。
- 類的私有方法:__private_method:兩個下劃線開頭,聲明該方法爲私有方法,只能在類的內部調用 ,不能在類地外部調用。self.__private_methods。
19. 類的專有方法:
- __init__ : 構造函數,在生成對象時調用
- __del__ : 析構函數,釋放對象時使用
- __repr__ : 打印,轉換
- __setitem__ : 按照索引賦值
- __getitem__: 按照索引獲取值
- __len__: 獲得長度
- __cmp__: 比較運算
- __call__: 函數調用
- __add__: 加運算
- __sub__: 減運算
- __mul__: 乘運算
- __div__: 除運算
- __mod__: 求餘運算
- __pow__: 乘方
20. 運算符重載:Python同樣支持運算符重載,我們可以對類的專有方法進行重載