我今天早些时候问了一个问题,我只想找到解决问题的方法。 我期待使用元类,但有一些不同的东西,它的工作原理。 但是,现在我对与之前的问题有关的事情感兴趣:为什么我的元类不起作用?
以下是我上一个问题的链接,但您无需阅读以回答此问题:How do I create a simple metaclass?
所以让我再次提出这个问题,这次是出于一个完全不同的原因:我如何创建一个简单的元类? 这就是我所拥有的,我不明白为什么它不起作用。
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'
答案 0 :(得分:0)
在Python 3中,您specify the metaclass differently:
class MyClass(metaclass=MyMeta):
pass