Python元类与异常处理全解析
1. 元类如何创建类
在Python中,当确定元类 M 后,Python会使用三个参数调用 M :类名(字符串形式)、基类元组 t 以及类体执行完成后的字典(在Python 3中,也可以是 __prepare__ 方法返回的其他映射) d 。这个调用会返回类对象 C ,随后Python将其绑定到类名上,完成类语句的执行。实际上,这是元类 M 的一次实例化过程,调用 M 时会执行 M.__init__(C, namestring, t, d) ,其中 C 是 M.__new__(M, namestring, t, d) 的返回值,这与其他类的实例化过程类似。
类对象 C 创建完成后,类 C 与其类型(通常是元类 M )之间的关系,和任何对象与其类型之间的关系相同。例如,当调用类对象 C 来创建 C 的实例时,会以类对象 C 作为第一个参数执行 M.__call__ 。
这里体现了Python“新式”对象模型的优势,特殊方法只在类上查找,而不在实例上查找,这与Python 2的“旧式”对象模型不同。无论 C
Python元类与异常处理详解
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



