python學習筆記:(十四)面向物件
1、類(class):
用來描述具有相同的屬性和方法的物件的集合。它定義了該集合中每個物件所共有的屬性和方法
2、類變數:
類變數在整個例項化的物件中是公用的。類變數定義在類中且在函式體之外。類變數通常不作為例項變數使用。
3、資料成員:
類變數或者例項變數用於處理類及其例項物件的相關的資料。
4、方法重寫:
如果從父類繼承的方法不能滿足子類的需求,可以對其進行改寫,這個過程叫方法的覆蓋(override),也稱為方法的重寫
5、繼承:
即一個派生類(derived class)繼承基類(base class)的欄位和方法。繼承也允許把一個派生類的物件作為一個基類物件對待。
6、例項化:
建立一個類額例項,類的具體物件。
7、方法:
類中定義的函式。
8、物件:
通過類定義的資料結構例項。帝鄉包括兩個資料成員(類變數和例項變數)和方法。
一、類定義
class classname:
statement-1
....
類例項化後,可以使用其屬性,實際上,建立一個類之後,可以通過類名訪問其屬性。
二、類物件
類物件支援兩種操作:屬性引用和例項化
屬性引用使用和Python中所有的屬性引用一樣的標準語法:obj.name
類物件建立後,類名稱空間中所有的命名都是有效屬性名。
構造方法
很多類都傾向於將物件建立為有初始狀態的。因此類可能會定義一個名為__init__()的特殊方法。
類定義了__init__()方法的話,類的例項化查詢會自動呼叫__init__()方法。
三、繼承
python同樣支援類的繼承。
如:class derivedclassname(baseclassname):
statement1
....
注意:
在繼承多個基類時,需要考慮基類的顯示順序,因為若是基類中有相同的方法名,而在子類中使用時未指定,python從左至右搜尋,即方法在子類中未找到時,從左到右查詢基類中是否包含方法。
四、方法重寫
如果父類的方法的功能不能滿足需求,可以再子類重寫父類的方法
五、類屬性與方法
1、類的私有屬性
__private_attrs:兩個下劃線開頭,宣告該屬性未私有,不能在類的外部被使用或直接訪問。在類內部的方法中使用時self.__private_attrs
2、類的方法
在類的內部,使用def定義為類的方法,與一般函式的區別是,類方法第一個引數必須是self
3、類的私有方法
__private_method:兩個下劃線開頭,宣告該方法為私有方法,不能在類的外部呼叫。在類的內部呼叫self.__private_methods