首页 文章

导入时未定义枚举对象 - Python 3到Jupyter Notebook

提问于
浏览
4

我通过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笔记本中运行“painting.ipynb”时,我有以下错误 .

------------------------------------------------- -------------------------- NameError Traceback(最近一次调用last)in()1 import color 2 ----> 3 color.painting (Color.RED)NameError:未定义名称“颜色”

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

1 回答

  • 3

    因为您要导入整个.py文件;你需要用以下内容来引用你的“Color”枚举:

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

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

    from color import Color
    from color import painting
    

相关问题