【发布时间】:2010-12-18 17:57:19
【问题描述】:
这是一个 python 会话。
>>> class Z(type):
def __new__(cls, name, bases, attrs):
print cls
print name
return type(name, bases, attrs)
...
>>> class Y(object):
__metaclass__ = Z
...
<class '__main__.Z'>
Y
>>> class X(Y):
... pass
...
>>> class W(Y):
... __metaclass__ = Z
...
<class '__main__.Z'>
W
>>>
在我定义类 X 之后,我希望 Z._new__ 被调用,并打印两行,这没有发生,(因为 metaclass 是继承的?)
【问题讨论】: