python基礎教程第二版 7 更加抽象:類
類是python的核心概念
對象(object)+資料操作方法=面向對象程式設計
對象優點:多态,封裝,繼承
綁定到對象特性上的函數稱為方法(method).
對象有自己的狀态,對象的狀态由它的特性描述.
繼承是另外一個懶惰的行為.
類可以看做一種對象的集合,子類就是這個對象的子集
A{B{}},A是B的超類,B是A的子類.
舊版本中,類與類型有差別.内建對象是基于類型的,自定義的對象則是基于類的.
新式類:
__mateclass__ = type #确定使用新式類
class 類名(超類):
def 方法(self,屬性):#self是對對象自身的引用.
self.屬性=值
顯然沒有self的話,成員方法就沒法通路他們要對其特性進行操作的對象本身了.
類.方法(self執行個體)=self執行個體.方法()
self參數事實上正是方法和函數的差別.
方法将第一個參數綁定到所屬的執行個體上,是以這個參數可以不必提供.
變量也可以綁定到方法上,跟直接使用方法一樣使用.
python并不直接支援私有方式,依靠程式員把握在外部進行修改的時機,隻要在方法名稱前添加__雙下劃線即可.
外部如果要通路使用
執行個體._類名__私有方法
使用_單下劃線的方法都不會被import 的 * 導入
類命名空間:這個命名空間可以由類所有成員通路.
檢視一個類是否為另一個類的子類用issubclass(子類,父類)
檢視子類的基類,使用 __bases__ 特性
多重繼承,超類清單中的在前的會重寫後面的相同方法.方法判定順序.
接口與多态有關.