はの私は、次の列挙型を持っているとしましょう:Python 3で列挙型フィールドを直接インポートすることは可能ですか?
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'のように使用できないのはなぜですか?なぜあなたはそれのための別の変数が必要ですか? – Andrey
これは美容上の理由から/コードの簡潔さのためです。 'plot_some_stuff(color = RED、line_style = DOTTED)'の代わりに 'plot_some_stuff(color = Color.RED、line_style = LineStyle.DOTTED)'のようなものを持つことは冗長です。 – nicoulaj