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

Thé*_*ier 5 python enums python-3.x jupyter-notebook

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

颜色.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!")
Run Code Online (Sandbox Code Playgroud)

绘画.ipynb

import color 
color.painting(Color.RED)
Run Code Online (Sandbox Code Playgroud)

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

-------------------------------------------------- ------------------------- NameError Traceback (最近一次调用最后一次) in () 1 import color 2 ----> 3 color.painting(红色)

名称错误:名称“颜色”未定义

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

Dav*_*hew 6

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

import color 
color.painting(color.Color.RED)
Run Code Online (Sandbox Code Playgroud)

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

from color import Color
from color import painting
Run Code Online (Sandbox Code Playgroud)