Python Cookbook 中文版,第 3 版 9.3分
读书笔记 元编程
超级露

元类的一个核心功能就是允许在定义类的时候对类本身的内容进行检查。在重新定义的__init__()方法中,我们可以自由地检查类字典、基类以及其他更多信息。此外,一旦为某个类指定了元类,该类FF所有子类都会自动继承这个特性。因此,聪明的框架实现者可以在庞大的类继承体系中为其中一个顶层基类指定一个元类,然后就可以获取到位于该基类之下的所有子类的定义了。

至于在元类中是重新定义__new__()还是__init__(),这取决于我们打算如何使用得到的结果类。__new__()会在类创建之前先得到调用,当元类想以某种方式修改类的定义时(通过修改类字典中的内容)一般会用这种方法。而__init__()方法会在类已经创建完成之后才得到调用,如果想编写代码同完全成形(fully formed)的类对象打交道,那么重新定义__init__()会很有用。

0
《Python Cookbook 中文版,第 3 版》的全部笔记 17篇
豆瓣
免费下载 iOS / Android 版客户端