名称错误作为内部类的PythonEnums是否可以彼此看不见?

2024-10-01 19:15:15 发布

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

在以下设置中

from enum import Enum

#class Enum2(Enum):
#    bla = 1

class OuterClass:
    class Enum1(Enum):
        n1 = "v1"
        n2 = "v2"

    class EnumExtended(Enum):
        a1 = "w1"
        a2 = OuterClass.Enum1
        #a2 = Enum2

    def __init__(self):
        a = OuterClass.EnumExtended
        for e in a:
            print(e, e.value)

我得到错误消息“NameError:name'OuterClass'未定义”,指向行a2 = OuterClass.Enum1。是否应该在那里看不到OuterClass?我怎么能在那个地方引用Enum1

更让人困惑的是,当我在jupyter笔记本中运行代码时,在激活并使用Enum2的定义(在上面的示例中注释掉)而不是Enum1之后,然后切换回Enum1,错误消失了,但在重新启动jupyter内核后返回。有人对这种行为有什么解释吗?非常感谢


Tags: fromimporta2错误jupyterenumclassv1

热门问题