我想实现类似于这种构造的东西:
class Outer:
class A:
foo = 1
class B:
def __init__(self):
self.bar = A.foo
Outer.B().bar # ==> 1
但这失败了
NameError: name 'A' is not defined
我什至不确定我是否理解为什么 as A(我认为)在范围内。
你能帮我解释一下为什么这行不通吗?我该如何解决这个问题?
请您参考如下方法:
仅在globals、locals 和非本地单元格中查找名称(但这里没有闭包)。
写Outer.A而不是A,或者考虑让Outer成为一个模块。
