从另一个嵌套类访问属性

2024-04-24 01:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

我甚至不知道我为什么会理解asA(我认为)在范围内。你知道吗

你能帮我弄清楚为什么这不管用,以及我该怎么解决吗?你知道吗


Tags: nameselffooinitisdefnotbar
3条回答

如果您使用Outer.A.foo,它就会工作。你知道吗

只在globalslocals和非局部单元格中查找名称(但这里没有闭包)。你知道吗

Outer.A而不是A,或者考虑将Outer作为一个模块。你知道吗

就像你对Outer.B().bar做的一样:对self.bar=Outer.A().foo做同样的事情

相关问题 更多 >