天天看點

python基礎教程第二版 7 更加抽象:類

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__ 特性

多重繼承,超類清單中的在前的會重寫後面的相同方法.方法判定順序.

接口與多态有關.