Skip to main content
 首页 » 编程设计

python之从另一个嵌套类访问属性

2025年05月04日20oomusou

我想实现类似于这种构造的东西:

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成为一个模块。