ドキュメントに記載されているように、列挙型は、一意の定数値にバインドされたシンボリック名(メンバー)のセットです。 PEP8 は、定数は通常UPPER_CASE
という名前であると言っていますが、この表記をPython 3.4 enums ? 、ドキュメントの例でlower_case
を使用しているのはなぜですか?
更新
BDFL(Benevolent Dictator For Life) 話しました 、そして Enum documentation
すべての大文字のメンバー名を反映するように変更されました。
[前の]ドキュメントの例は小文字です。これは主に、Enumが使用された小文字に基づいた既存のモジュールの1つ(または少なくともその作成者が行った;)のためです。
私の列挙型の使用法は、通常、次のようなものでした。
class SomeEnum(Enum):
... = 1
... = 2
... = 3
globals().update(SomeEnum.__members__)
これにより、すべてのメンバーがモジュールの名前空間に効果的に配置されます。
ですから、どちらのスタイルがあなたにとってより快適であると感じるかは言うでしょうが、スタイルを選び、一貫性を保ってください。
UPPER_CASEではないと思います。なぜなら、そうなると奇妙に見えるからです。クラスを介してのみ列挙にアクセスできるため(例:my_enum.VALUE
)メンバーが大文字になっていると奇妙に見えます。 Cでは、列挙型のメンバーはモジュールの名前空間に入るので、メンバーが大文字になっている場合、使用法では(私には)奇妙に見えません。
typedef enum {OFF, ON} lightswitch;
lightswitch bathroomLight = ON;
しかし、Pythonでは、作成した列挙型クラスを介してそれらにアクセスし、ClassStyle名からALL_CAPSに移動するのは奇妙に見えます。
class Lightswitch(Enum):
OFF = 0
ON = 1
# isn't that weird?
my_light = Lightswitch.OFF
要するに、それはただの美的だと思います。しかし、私は以前に間違っていました、そしてこれは私の意見にすぎないことを理解しています。
スタイルについて疑問がある場合、私は通常、標準ライブラリコードで使用されているスタイルと公式ドキュメントの例を使用します。それは私が恣意的な決定に時間を無駄にすることを防ぎます。
したがって、この場合、変数名のように小文字をお勧めします。