Python自定义类是type类的实例

Python自定义类是type类的实例

Question #

Python类型模型的三条原则之一:所有的 Python 的用户定义类,都是 type 这个类的实例。如何理解这句话?

Answer #

事实上,类本身不过是一个名为 type 类的实例。在 Python 的类型世界里, type 这个类就是造物的上帝。这可以在代码中验证:

# Python 3和Python 2类似
class MyClass:
  pass
instance = MyClass()
type(instance)
# 输出
<class '__main__.C'>
type(MyClass)
# 输出
<class 'type'>

你可以看到,instance 是 MyClass 的实例,而 MyClass 不过是“上帝”type 的实例。

From #

18 | metaclass,是潘多拉魔盒还是阿拉丁神灯?

Python Data Model