文件名称:定义有可选参数的元类-python cookbook(第3版)高清中文完整版
文件大小:4.84MB
文件格式:PDF
更新时间:2024-06-29 23:06:29
python cookbook 第3版 高清 中文完整版
9.15 定义有可选参数的元类 问题 你想定义一个元类,允许类定义时提供可选参数,这样可以控制或配置类型的创建过程。 解决方案 在定义类的时候,Python允许我们使用 ``metaclass``关键字参数来指定特定的元类。 例如 使用抽象基类: from abc import ABCMeta, abstractmethod class IStream(metaclass=ABCMeta): @abstractmethod def read(self, maxsize=None): pass @abstractmethod def write(self, data): pass 然而,在自定义元类中我们还可以提供其他的关键字参数,如下所示: class Spam(metaclass=MyMeta, debug=True, synchronize=True): pass 为了使元类支持这些关键字参数,你必须确保在 __prepare__() , __new__() 和 __init__() 方法中 都使用强制关键字参数。就像下面这样: