使用元类的自定义功能
**** 可以更改**元类中的功能,**以便无论何时构建类,都会将字符串打印到标准输出,或者抛出异常。此元类将打印正在构建的类的名称。
class VerboseMetaclass(type):
def __new__(cls, class_name, class_parents, class_dict):
print("Creating class ", class_name)
new_class = super().__new__(cls, class_name, class_parents, class_dict)
return new_class
你可以像这样使用元类:
class Spam(metaclass=VerboseMetaclass):
def eggs(self):
print("[insert example string here]")
s = Spam()
s.eggs()
标准输出将是:
Creating class Spam
[insert example string here]