1、說明
一個(gè)類沒有聲明自己的元類,默認(rèn)他的元類就是type,除了使用元類type,用戶也可以通過繼承type來自定義元類。
2、實(shí)例
我們可以使用類屬性 __metaclass__ 把一個(gè)類的創(chuàng)建過程,轉(zhuǎn)交給其它地方。
class A(object):
__metaclass__ = ... # 這個(gè)類的創(chuàng)建轉(zhuǎn)交給其他地方
pass
先定義了類 A,然后定義了一個(gè)類屬性 __metaclass__,這個(gè)屬性表示創(chuàng)建類 A 的過程,轉(zhuǎn)交給其它地方處理。
類屬性 __metaclass__ 可以是一個(gè)方法,也可以是一個(gè)類。
內(nèi)容擴(kuò)展:
用元類創(chuàng)建類
前面講到過,type 有一個(gè)作用是用于檢查對(duì)象的類型,其實(shí)它還有另外一個(gè)作用就是作為元類動(dòng)態(tài)地創(chuàng)建類(對(duì)象)。
>>> Person = type("Person", (), {"live":True})
>>> Person
class '__main__.Person'>
Person 就是一個(gè)類,它等價(jià)于:
>>> class Person:
... live = True
...
>>> Person
class '__main__.Person'>
用元類 type 創(chuàng)建類的語法是:
type(類名,基類元組(可以為空), 屬性字典)
到此這篇關(guān)于Python自定義元類的實(shí)例講解的文章就介紹到這了,更多相關(guān)Python如何自定義元類內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python基礎(chǔ)之元類詳解
- 詳解python metaclass(元類)
- 一篇文章帶你了解python迭代器和生成器
- 正確理解python迭代器與生成器
- python學(xué)習(xí)之可迭代對(duì)象、迭代器、生成器
- Python元類與迭代器生成器案例詳解