class執行該語句時,Python首先將class語句的主體作為普通代碼塊執行。生成的名稱空間(字典)保留了將來類的屬性。通過查看待定類的基類(繼承了元類),待定類的__metaclass__屬性(如果有)或__metaclass__全局變量來確定元類。然後使用該類的名稱,基數和屬性調用該元類以實例化它。但是,元類實際上定義了類的類型,而不僅僅是它的工廠,因此妳可以使用它們做更多的事情。例如,妳可以在元類上定義常規方法。這些元類方法就像類方法,因為它們可以在沒有實例的情況下在類上調用,但是它們也不像類方法,因為它們不能在類的實例上被調用。type.__subclasses__()是type元類上方法的示例。妳還可以定義正常的“魔力”的方法,如__add__,__iter__和__getattr__,執行或如何變化的類的行為。