阅读优秀SO post后,我尝试制作一个模块级的元类:的Python元类和对象的基类
def metaclass(future_class_name, future_class_parents, future_class_attrs):
print "module.__metaclass__"
future_class_attrs["bar"]="bar"
return type(future_class_name, future_class_parents, future_class_attrs)
__metaclass__=metaclass
class Foo(object):
def __init__(self):
print 'Foo.__init__'
f=Foo()
这不工作(即“模块元类”没有得到印)除非我删除了Foo的object
基类。怎么来的?
注意:我正在使用Python 2.6.1。
规范说没有这样的事情。它所说的是,如果存在基类,则将使用基类的元类,而不管基类是否指定元类。 – Marcin