0

我今天早些时候问了一个问题,我只想解决我的问题。我期待使用元类,但得到了一些不同的东西并且它起作用了。但是,现在我对与我之前的问题相关的东西感兴趣:为什么我的元类不起作用?

这是我上一个问题的链接,但您不需要阅读它来回答这个问题:如何创建一个简单的元类?

所以让我再次问这个问题,这一次是出于完全不同的原因:我如何创建一个简单的元类?这就是我所拥有的,我不明白为什么它不起作用。

class MyMeta(type):
    def __new__(mcls, name, bases, attrs):
        attrs['my_attr'] = True     
        return super().__new__(mcls, name, bases, attrs)

class MyClass:
    __metaclass__ = MyMeta

print(MyClass.my_attr)

最后一行打印以下错误:

AttributeError: type object 'MyClass' has no attribute 'my_attr'
4

1 回答 1

0

在 Python 3 中,您以不同的方式指定元类

class MyClass(metaclass=MyMeta):
    pass
于 2013-04-05T15:32:18.320 回答