首页 > 代码库 > [Python]剖析类的机理

[Python]剖析类的机理

Python是如何创建类的?


当python的解释器碰到类的定义的时候,它会像对待其他code一样先读取其内容,然后为这个class创建一个新的namespace并且执行其代码。类的定义通常包括变量,方法以及其他类。这些内容都在新的命名空间里面。从类的内容读到到类的对象的产生是通过内置type函数来实现,所以type函数也提供可动态创建类的可能。


用type函数动态创建类的时候,type这个构造函数需要三个参数,分别是类名,基类以及其属性。


type实际上是一个元类,所谓的元类就是可以创建其他类的类。如果一个类的定义中包括一个单独的metaclass项的话,这个指定的metaclass将被用来创建类,而不是内置的type 对象。metaclass的父类是type。元类是我们拥有了在运行时修改其他对象的机会和能力,从而使python语言变得无比的强大和灵活。


在一个类中,如果定义了__call__方法,那么这个类的对象也是可以被调用和执行的。想判断一个类的实例是可以被执行,可以用callable函数来检测。