Python中的元類 metaclass

2021-09-25 00:25:20 字數 378 閱讀 3368

動態語言和靜態語言最大的區別就是,函式和類的定義不是在編譯時執行的,而是在執行時才真正執行。

而在python中,類定義也是在執行時候才被建立,而建立過程是通過呼叫type方法來實現。我們也可以不使用類定義的方式來建立類定義。

因此我們除了可以通過繼承的方式來控制類的建立行為,也可以通過定義metaclass的方式來控制類的建立行為。

所以類定義的流程是:建立metaclass -> 建立class -> 建立類例項

# 在類定義時候使用metaclass關鍵字來完成定義

class

selfdefinedclass

(metaclass=mymetaclass)

:pass

python中的元類

python中的元類大家都可能比較很陌生,因為大家都聽說過99 的情況下是用不到元類的,但是大家對類確很了解,大家都知道在python中萬物皆物件,那麼python中的類是不是物件呢?物件的樣子 1,物件可以在程式中動態的進行建立,python的語言動態特性。2,物件可以通過 class 獲取該物件...

Python 中的元類

如果看完以後還是感覺莫名其妙,執行這樣乙個demo 可能會對你有所幫助 元類程式設計在我看來,如果你想開發一些框架,可以嘗試一下 class upperattrmetaclass type type dict def new cls,cls name,bases,attr dict news cls...

python中的元類

目錄其他 我們建立乙個類目的是為了建立該類的例項物件,而元類就是用來建立類的。換個理解方式就是,元類就是建立類的類。在python中可以使用type函式建立乙個類,參考 python中type的用法 用法如下 tpye name,bases,dict 實際上type 函式就是乙個元類,是python...