【问题标题】:Enum object not defined when imported - Python 3 through Jupyter Notebook导入时未定义枚举对象 - 通过 Jupyter Notebook 的 Python 3
【发布时间】:2019-02-16 02:11:51
【问题描述】:

我正在通过 Jupyter Notebook 使用 Python 3 我在同一个工作目录中有两个模块“color.py”和“painting.ipynb”。

color.py

from enum import Enum

class Color(Enum):
    RED = 1
    BLUE = 2

def painting(color):
        if color == Color.RED:
            print("The painting is red")
        elif color == Color.BLUE:
            print("The painting is blue")
        else:
            raise ValueError("The painting is not blue nor red!")

painting.ipynb

import color 
color.painting(Color.RED)

当我尝试在 jupyter notebook 中运行“painting.ipynb”时,出现以下错误。

----------------------------------------------- ---------------------------- NameError Traceback(最近调用 最后)在() 1 进口颜色 2 ----> 3 color.painting(Color.RED)

NameError: 名称“颜色”未定义

我不明白为什么我无法访问颜色。我应该打电话给班级吗?这是我第一次使用 jupyter notebook 和 Enum。请帮忙 :) 谢谢。

【问题讨论】:

    标签: python python-3.x enums jupyter-notebook


    【解决方案1】:

    由于您要导入整个 .py 文件;您需要使用以下内容引用您的“颜色”枚举:

    import color 
    color.painting(color.Color.RED)
    

    根据您计划引用该枚举的频率,单独导入您需要的位可能会更好:

    from color import Color
    from color import painting
    

    【讨论】:

    • as painting 不是必需的,我建议保持Color 大写(所以不要as color)。
    • 谢谢,我同意。更新了我的评论。
    猜你喜欢
    • 2015-01-18
    • 2020-07-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2023-03-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多