logo

Pythonの列挙型

Python の列挙は、という名前のモジュールを使用して実装されます。 列挙型 。列挙は次を使用して作成されます クラス 。列挙型には、 名前と値 それらに関連付けられています。のさまざまな概念について説明しましょう パイソン この記事の列挙型。

Enum とは何ですか?なぜ便利ですか?

列挙または列挙は、一意の値にバインドされた一連の記号名です。これを反復して、定義順に正規のメンバーを返すことができます。これにより、任意の値の代わりに意味のある名前を使用して、より読みやすく自己文書化されたコードを作成する方法が提供されます。



Enum のプロパティ

  • 列挙型は次のように表示できます。 または 代表者
  • 列挙型は、次を使用して型を確認できます。 タイプ()
  • 名前 キーワードは、列挙メンバーの名前を表示するために使用されます。

Enumの利点は何ですか

enum を使用する利点には次のようなものがあります。

  • メンテナンスのしやすさ: 列挙型は名前の値の定義を一元管理するため、要件に応じて値のセットをアップグレードまたは拡張することが容易になります。
  • 読みやすさと自己文書化: 列挙型は値に意味のある名前を提供し、コードを人間が読みやすく、一目瞭然にすることができます。
  • タイプセーフティ : 列挙型はある程度の型安全性を提供し、有効な値のみを使用できるようにします。
  • エラーのリスクの軽減 : 列挙型は、コード内での不正な値や一貫性のない値の使用を防ぎ、バグやエラーのリスクを軽減します。

Pythonの列挙型クラス

列挙を示す Python コード

このコードは列挙型クラスを定義しますSeason>メンバーはSPRING、SUMMER、AUTUMN、WINTERの4人。列挙型メンバー、その名前、値へのアクセスなど、列挙型の主要なプロパティを示します。さらに、すべての列挙型メンバーのリストを取得する方法も示します。出力には、名前、値、タイプ、およびすべてのリストが反映されます。Season>enum メンバー。



Python3






from> enum>import> Enum> class> Season(Enum):> >SPRING>=> 1> >SUMMER>=> 2> >AUTUMN>=> 3> >WINTER>=> 4> print>(Season.SPRING)> print>(Season.SPRING.name)> print>(Season.SPRING.value)> print>(>type>(Season.SPRING))> print>(>repr>(Season.SPRING))> print>(>list>(Season))>

>

通信販売の横断

>

出力:

Season.SPRING SPRING 1   [, , , ]>

モードへのアクセス

Enum メンバーには 2 つの方法でアクセスできます。

  • 値による :- このメソッドでは、enum メンバーの値が渡されます。
  • 名前で :- このメソッドでは、列挙メンバーの名前が渡されます。

別の値または名前には、 名前 または 価値 キーワード。

コードは列挙型クラスを定義します ' Season'> メンバー4人で。値と名前で列挙メンバーにアクセスする方法を示します。これは、値または名前を指定して列挙型メンバーを取得し、それに応じてその名前または値にアクセスできることを示しています。このコードは、値ベースと名前ベースの両方の enum メンバー アクセスの例を提供します。

Python3




from> enum>import> Enum> class> Season(Enum):> >SPRING>=> 1> >SUMMER>=> 2> >AUTUMN>=> 3> >WINTER>=> 4> print>(>'The enum member associated with value 2 is : '>, Season(>2>).name)> print>(>'The enum member associated with name AUTUMN is : '>, Season[>'AUTUMN'>].value)>

>

>

出力:

The enum member associated with value 2 is : SUMMER The enum member associated with name AUTUMN is : 3>

列挙型は 反復可能な 。ループを使用して反復できます

この例では、次のように使用します。 ループ Enum クラスのすべてのメンバーを出力します。

コードは列挙型クラスを定義します ' Season'> メンバー4人で。 enum メンバーを反復処理し、その値と名前を出力します。出力には、各列挙メンバーの値とその完全修飾名が表示され、列挙値を操作および表示する方法が提供されます。

Python3




from> enum>import> Enum> class> Season(Enum):> >SPRING>=> 1> >SUMMER>=> 2> >AUTUMN>=> 3> >WINTER>=> 4> for> season>in> (Season):> >print>(season.value,>'-'>,season)>

>

>

出力:

1 - Season.SPRING 2 - Season.SUMMER 3 - Season.AUTUMN 4 - Season.WINTER>

列挙型サポート H アッシング

この例では、ユーザーが、で使用できる Enum クラスをハッシュする方法を示します。 辞書 または セット

Javaの配列リストをソートする

このコードでは、 ' enum'> 列挙型クラスを定義するモジュール ' Animal'> メンバーは犬、猫、ライオンの3人。次に辞書を作成しますdi>そして列挙メンバーに基づいて値を割り当てます。最後に、辞書が特定のキーと値のペアに一致するかどうかを確認します。

Python3




import> enum> class> Animal(enum.Enum):> >dog>=> 1> >cat>=> 2> >lion>=> 3> di>=> {}> di[Animal.dog]>=> 'bark'> di[Animal.lion]>=> 'roar'> if> di>=>=> {Animal.dog:>'bark'>, Animal.lion:>'roar'>}:> >print>(>'Enum is hashed'>)> else>:> >print>(>'Enum is not hashed'>)>

Javaの回帰式
>

>

出力:

Enum is hashed>

Python で列挙型を比較す​​る

列挙型は、次の 2 種類の比較をサポートします。

  • 身元 :- これらはキーワードを使用してチェックされます そして ではありません
  • 平等 :- の等価比較 == そして != タイプもサポートされています。

このコードは列挙型クラスを定義しますAnimal>を使用してenum>犬、猫、ライオンの 3 人のメンバーを持つモジュール。次に、列挙型メンバー間の比較を実行して、等しいかどうかをチェックします。

Python3




import> enum> class> Animal(enum.Enum):> >dog>=> 1> >cat>=> 2> >lion>=> 3> if> Animal.dog>is> Animal.cat:> >print>(>'Dog and cat are same animals'>)> else>:> >print>(>'Dog and cat are different animals'>)> if> Animal.lion !>=> Animal.cat:> >print>(>'Lions and cat are different'>)> else>:> >print>(>'Lions and cat are same'>)>

>

>

出力:

Dog and cat are different animals Lions and cat are different>