第13章 物件導向程式設計 3

2021-06-01 01:12:12 字數 859 閱讀 3592

13.4 類屬性

屬性就是屬於另乙個物件的資料或者函式元素,可以通過我們熟悉的句點屬性標識來訪問。

13.4.1 類的資料屬性

資料屬性僅僅是所定義的類的變數。

靜態變數,或者是靜態資料表示這些資料是與它們所屬的類物件繫結的,不依賴於任何類例項。

靜態成員通常僅用來跟蹤與類相關的值。大多數情況下,你會考慮用例項屬性,而不是類屬性。

13.4.2 methods

沒有例項,方法是不能被呼叫的,這種限制即python所描述的繫結概念(binding),在此,方法必須繫結到乙個例項才能直接被呼叫。

13.4.3 決定類的屬性

要知道乙個類有哪些屬性,有兩種方法。最簡單的是使用dir()內建函式。另外是通過訪問類的字典屬性__dict__。

13.4.4 特殊的類屬性

__name__ 類的名字(字串)

__doc__ 類的文件字串

__bases__ 類的所有父類構成的元組

__dict__ 類的屬性

__module__ 類定義所在的模組

__class__ 例項對應的類

>>> class c(object):

... pass

...

>>> c.__name__

'c'>>> c.__dict__

>>> print c.__dict__

>>> c.__doc__

>>> c.__bases__

(,)>>> c.__module__

'__main__'

>>> c = c()

>>> c.__class__

>>>

第13章 物件導向程式設計 13

13.13.3 迭代器 randseq和anyiter 1.randseq from random import choice class randseq object def init self,seq self.data seq def iter self return self def nex...

第13章 物件導向程式設計 17

13.16.5 元類和 metaclass 1.元類 metaclasses 是什麼 元類讓你來定義某些類是如何被建立的,從根本上說,賦予你如何建立類的控制權。從根本上說,你可以把元類想成是乙個類中類,或是乙個類,它的例項是其他的類。當你建立乙個新類時,你就是在使用預設的元類,它是乙個型別物件 對傳...

第13章 物件導向程式設計 11

13.12 類 例項和其他物件的內建函式 13.12.1 issubclass issubclass 布林函式判斷乙個類是否另乙個類的子類或子孫類。class sortedkeydict dict def keys self return sorted super sortedkeydict,sel...