1. 程式人生 > >Python 中的元類到底是什麼?這篇恐怕是最清楚的了

Python 中的元類到底是什麼?這篇恐怕是最清楚的了

類作為物件 ===== 在理解元類之前,您需要掌握 Python 的類。Python 從 Smalltalk 語言中借用了一個非常特殊的類概念。 在大多數語言中,類只是描述如何產生物件的程式碼段。在 Python 中也是如此: ``` >>> class ObjectCreator(object): ... pass ... >>> my_object = ObjectCreator() >>> print(my_object) <__main__.ObjectCreator object at 0x8974f2c> ``` 但是Python的類更甚。在Python中,Python的類也是物件。 對的,也是物件。 一旦使用關鍵字`class`,Python 就會執行它並建立一個物件。示例程式碼: ``` >>> class ObjectCreator(object): ... pass ... ``` 如上程式碼在記憶體中建立一個名稱為 “ObjectCreator” 的物件。 **這個物件(類)本身具有建立物件(例項)的能力,這就是為什麼它也是一個類**。 但是,**它仍然是一個物件**,因為: * 您可以將其分配給變數 * 你可以複製它 * 您可以為其新增屬性 * 您可以將其作為函式引數傳遞 例如: ``` >>> print(ObjectCreator) # 你可以列印一個類,因為它是一