logo

Pythonの列挙型

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

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

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

Enum のプロパティ

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

Enumの利点は何ですか

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



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

Pythonの列挙型クラス

列挙を示す Python コード 

10/50

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

Python
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 つの方法でアクセスできます。

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

' を使用して別の値または名前にアクセスすることもできます。 名前 ' または ' 価値 」というキーワード。

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



Python
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 メンバーを反復処理し、その値と名前を出力します。出力には、各 enum メンバーの値とその完全修飾名が表示され、enum 値を操作および表示する方法が提供されます。

ブラウザの設定はどこにありますか
Python
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 クラスをハッシュする方法を示します。 辞書 または セット

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

Python
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') 

出力:

Enum is hashed  

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

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

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

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

Python
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