【发布时间】:2013-10-24 07:49:41
【问题描述】:
我有这个代码:
class Attributes(object):
class __metaclass__(type):
def __init__(self, cls_name, cls_bases, cls_dict):
# super(Attributes.__metaclass__, self) # NameError: global name 'Attributes' is not defined
super(__metaclass__, self).__init__(
cls_name, cls_bases, cls_dict)
给予
NameError: global name '__metaclass__' is not defined
为什么在外部范围内找不到__metaclass__ 变量?
【问题讨论】:
-
你能给我更多的代码来处理,这样我就可以快速运行它,看看我是否能重现问题?
-
我已经尝试重现该问题,但事实证明,您不能在具有调用 super 的 init 方法的类中拥有类。它不仅仅是第 3 级继承,即使您尝试在
Attributes内部调用super,它也不起作用。您需要致电SimpleModel.Attributes来获取它。
标签: python class namespaces