乙個類沒有宣告自己的元類,預設他的元類就是type,除了使用元程式設計客棧類type,使用者也可以通程式設計客棧過繼承type來自定義元類。
我們可以使用類屬性 __metaclass__ 把乙個類的建立過程,轉交給其它地方。
class a(object):
__metaclass__ = ... # 這個類的建立轉交給其他地方
pass
先定義了類 a,然後定義了乙個類屬性 __metaclass__,這個屬性表示建立類 a 的過程,轉交給其它地方處理。
類屬性 __metaclass__ 可以是乙個方法,也可以是乙個類。
內容擴充套件:
用元類建立類
前面講到過,type 有乙個作用是用於檢查物件的型別,其實它還有另外乙個作用就是作為元類動態地建立類(物件)。
>>> person = type("person", (), )程式設計客棧
>>> person
www.cppcns.com
person 就是乙個類,它等價於:
>>> class person:
... live = true
...>>> person
用元類 type 建立類的語法是:
type(類名,基類元組(可以為空), 屬性字典)
python 元類type建立類的類 自定義元類
class a pass print 列印類 print a print 列印類物件 print a print 類為自己增加屬性 a.attr1 10 print 類拷貝給乙個變數 b a print 判斷某個屬性是否為此類的 print hasattr b,attr1 print 類卓偉乙個引數...
python自定義類
設計乙個person類的3種方式 1 使用內建型別list person mike 23,male 0 姓名,1 年紀,2 性別 print person 0 person 1 person 2 2 使用字典型別dic person1 person2 print person1 name perso...
自定義元類控制類的建立
chinese每次建立由原來的type改為mymeta,因此可以在mymeta內對類進行一些特殊定製 示例一 類名的大小寫強控 class mymeta type def init self,class name,class bases,class dic if not class name.ist...