相关疑难解决方法(0)

嵌套类的范围?

我试图理解Python中嵌套类的范围.这是我的示例代码:

class OuterClass:
    outer_var = 1
    class InnerClass:
        inner_var = outer_var
Run Code Online (Sandbox Code Playgroud)

类的创建没有完成,我收到错误:

<type 'exceptions.NameError'>: name 'outer_var' is not defined
Run Code Online (Sandbox Code Playgroud)

尝试inner_var = Outerclass.outer_var不起作用.我明白了:

<type 'exceptions.NameError'>: name 'OuterClass' is not defined
Run Code Online (Sandbox Code Playgroud)

我试图访问静态outer_varInnerClass.

有没有办法做到这一点?

python scope nested class inner-classes

113
推荐指数
3
解决办法
14万
查看次数

如何在另一个内部类中使用内部类作为类型注释?

我有以下类结构:

class Root:
    @dataclass
    class Leaf:
        pass

    @dataclass
    class Node:
        leaf: Leaf
Run Code Online (Sandbox Code Playgroud)

问题是PyCharm看不到Leaf类,我也尝试将其指定为leaf: Root.Leaf甚至'Root'.Leaf...有相同的结果。
如果类型是另一个内部类,如何在内部类中声明字段类型?在Python中可以吗?
PS我可以使该类Leaf成为类的内部成员Node,但我对我的示例感兴趣。

python inner-classes python-3.x

5
推荐指数
1
解决办法
1239
查看次数

标签 统计

inner-classes ×2

python ×2

class ×1

nested ×1

python-3.x ×1

scope ×1