Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonの列挙型


列挙型は、一意の定数値にバインドされたシンボリック名(メンバー)のセットである列挙型を作成するためのPythonのクラスです。列挙型のメンバーは、これらのシンボリックアニーによって比較でき、列挙型自体を繰り返すことができます。列挙型には次の特徴があります。

  • 列挙型は、repr()とも呼ばれるオブジェクトの評価可能な文字列表現です。

  • 列挙型の名前は、「name」キーワードを使用して表示されます。

  • type()を使用して、列挙型を確認できます。

import enum
# Using enum class create enumerations
class Days(enum.Enum):
   Sun = 1
   Mon = 2
   Tue = 3
# print the enum member as a string
print ("The enum member as a string is : ",end="")
print (Days.Mon)

# print the enum member as a repr
print ("he enum member as a repr is : ",end="")
print (repr(Days.Sun))

# Check type of enum member
print ("The type of enum member is : ",end ="")
print (type(Days.Mon))

# print name of enum member
print ("The name of enum member is : ",end ="")
print (Days.Tue.name)

出力

上記のコードを実行すると、次の結果が得られます-

The enum member as a string is : Days.Mon
he enum member as a repr is :
The type of enum member is :
The name of enum member is : Tue

列挙型を反復可能として印刷する

列挙型を反復可能なリストとして出力できます。以下のコードでは、forループを使用してすべての列挙型メンバーを出力します。

import enum
# Using enum class create enumerations
class Days(enum.Enum):
   Sun = 1
   Mon = 2
   Tue = 3
# printing all enum members using loop
print ("The enum members are : ")
for weekday in (Days):
   print(weekday)

出力

上記のコードを実行すると、次の結果が得られます-

The enum members are :
Days.Sun
Days.Mon
Days.Tue

列挙型のハッシュ

列挙型のメンバーはハッシュ可能であるため、辞書やセットで使用できます。次の例では、ハッシュが実行されていることを確認し、ハッシュが成功したかどうかを確認します。

import enum
# Using enum class create enumerations
class Days(enum.Enum):
   Sun = 1
   Mon = 2
# Hashing to create a dictionary
Daytype = {}
Daytype[Days.Sun] = 'Sun God'
Daytype[Days.Mon] = 'Moon God'

# Checkign if the hashing is successful
print(Daytype =={Days.Sun:'Sun God',Days.Mon:'Moon God'})

出力

上記のコードを実行すると、次の結果が得られます-

True

列挙型へのアクセス

メンバーアイテムの名前または値を使用して、列挙型メンバーにアクセスできます。以下の例では、最初に名前で値にアクセスし、enuの名前をインデックスとして使用します。

import enum
# Using enum class create enumerations
class Days(enum.Enum):
   Sun = 1
   Mon = 2
print('enum member accessed by name: ')
print (Days['Mon'])
print('enum member accessed by Value: ')
print (Days(1))

出力

上記のコードを実行すると、次の結果が得られます-

enum member accessed by name:
Days.Mon
enum member accessed by Value:
Days.Sun

列挙型の比較

列挙型の比較は非常に簡単なプロセスであるため、比較演算子を使用します。

import enum
# Using enum class create enumerations
class Days(enum.Enum):
   Sun = 1
   Mon = 2
   Tue = 1
if Days.Sun == Days.Tue:
   print('Match')
if Days.Mon != Days.Tue:
   print('No Match')

出力

上記のコードを実行すると、次の結果が得られます-

Match
No Match

  1. Pythonのissuperset()

    この記事では、Pythonでのissuperset()と、さまざまな分野でのその実装について学習します。 このメソッドは、セットBのすべての要素に引数として渡されるすべての要素セットAが含まれている場合はブール値Trueを返し、Aのすべての要素がBに存在しない場合はfalseを返します。 これは、BがAのスーパーセットである場合、それを意味します returns true; else False 例 いくつかの例を見てみましょう A = {'t','u','t','o','r','i',

  2. Pythonクラスで列挙型を使用する方法は?

    pythonにはモジュール名「enum」があり、そのhepはpythonで使用されます。 #import enum import enum # use enum in class class Car(enum.Enum):    suzuki = 1    Hyundai = 2    Dezire = 3 print ("All the enum values are : ") for c in (Car):    print(c)