将Enum Class分配给变量并访问它

时间:2017-09-18 07:14:55

标签: python enums

我有一个枚举类

default_enums.py

import enum

class Color(enum.Enum):
    Red = 0
    Blue = 1
    Green = 2

app.py

from default_enums import Color

def set_enums():
    global color_enum
    color_enum = Color


another_file.py

import app

#this line throws the error
# RuntimeError: no object bound to color_enum
app.color_enum.Red

我无法访问color_enum中的值,因为我已将该类分配给color_enum。

任何人都可以帮助我解决问题。

由于

1 个答案:

答案 0 :(得分:0)

您需要做的就是调用app.py模块中的set_enums()函数。

-----------app.py-----------

from default_enums import Color

def set_enums():
    global color_enum
    color_enum = Color

#call the function to set the value for color_enum 
set_enums()

-----------another_file.py-----------

from app import *

print(color_enum.Red.value)
#0

尽管如此,我觉得设计代码可以改进。事实上,整个app.py模块本身并不是必需的。并且color_enum变量之前未定义,但是在set_enums()函数中设置,这可能会导致您面临的问题。

所以我建议再次查看代码设计,而不是实现上面的设计。