【发布时间】:2017-10-30 13:19:37
【问题描述】:
假设我有以下枚举:
class LineStyle(Enum):
SOLID = 'solid'
DASHED = 'dashed'
DASHDOT = 'dashdot'
DOTTED = 'dotted'
是否有可能以某种方式直接从此枚举中导入字段?
例如:
from mymodule.LineStyle import SOLID, DASHED # does not work
我能想到的唯一解决方法是将所有枚举字段声明为模块变量:
class LineStyle(Enum):
SOLID = 'solid'
DASHED = 'dashed'
DASHDOT = 'dashdot'
DOTTED = 'dotted'
SOLID = LineStyle.SOLID
DASHED = LineStyle.DASHED
DASHDOT = LineStyle.DASHDOT
DOTTED = LineStyle.DOTTED
有没有更优雅的方法来做到这一点?
【问题讨论】:
-
导入机制无法访问类中的项目。所以,没有。
-
请问你为什么不能像
LineStyle.SOLID那样使用它们?为什么你需要一个单独的变量呢? -
这只是为了美观/代码简洁。拥有诸如
plot_some_stuff(color=Color.RED, line_style=LineStyle.DOTTED)而不仅仅是plot_some_stuff(color=RED, line_style=DOTTED)之类的东西是多余的。 -
对于化妆品,我倾向于使用合格的进口产品,也许,将 Color 作为 C 进口?
标签: python python-3.x enums python-import