Python元类的自定义功能

示例

可以更改元类中的功能,以便每当构建一个类时,就将字符串打印到标准输出,或者引发异常。此元类将打印正在构建的类的名称。

class VerboseMetaclass(type):

    def __new__(cls, class_name, class_parents, class_dict):
        print("建立课程 ", 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()

标准输出为:

建立课程 Spam
[insert example string here]