次の記事では、Python の列挙クラスとは何かについて学びましょう。 Python 列挙クラス とは何か、Python プログラミングにおいて Python 列挙クラスがどのような役割を果たすことができるかを理解します。
列挙型の定義
まず、列挙型を定義するために、enum モジュールをインポートします。
列挙定義では class キーワードを使用し、Enum クラスを継承します。
注:
列挙型を定義する場合、メンバー名を繰り返すことはできません。
デフォルトでは、異なるメンバー値が同じであることが許可されます。ただし、同じ値を持つ 2 つのメンバーの場合、2 番目のメンバーの名前は最初のメンバーの別名とみなされます。
列挙型内に同じ値を持つメンバーがある場合、列挙型メンバーを値で取得するときに、2 番目のメンバーの名前は最初のメンバーの別名とみなされます。 、最初のメンバーのみを取得します
列挙型の定義を制限する場合は、同じ値を持つメンバーを定義することはできません。デコレータ @unique を使用できます [一意のモジュールをインポートする]
定数を定義する必要がある場合、1 つの方法は、月などの整数で定数を定義するために大文字の変数を使用することです。
JAN = 1 FEB = 2 MAR = 3 ... NOV = 11 DEC = 12
利点は単純なことですが、欠点は型が int で変数であることです。
より良いアプローチは、そのような列挙型のクラス型を定義し、各定数がクラスの一意のインスタンスになることです。 Python は、この関数を実装するための Enum クラスを提供します:
from enum import Enum Month = Enum('Month', ('Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'))
このようにして、Month 型列挙クラスを取得します。Month.Jan を直接使用して、定数を参照したり、そのすべてのメンバーを列挙したりできます:
for name, member in Month.__members__.items(): print(name, '=>', member, ',', member.value)
value 属性はメンバーに自動的に割り当てられる int 定数で、デフォルトでは 1 から数えられます。
列挙型をより正確に制御する必要がある場合は、Enum からカスタム クラスを派生できます。
from enum import Enum, unique @unique class Weekday(Enum): Sun = 0 # Sun的value被设定为0 Mon = 1 Tue = 2 Wed = 3 Thu = 4 Fri = 5 Sat = 6
@独自のデコレータは、重複した値がないことを確認するのに役立ちます。
これらの列挙型にアクセスするには、いくつかの方法があります。
>>> day1 = Weekday.Mon >>> print(day1) Weekday.Mon >>> print(Weekday.Tue) Weekday.Tue >>> print(Weekday['Tue']) Weekday.Tue >>> print(Weekday.Tue.value) 2 >>> print(day1 == Weekday.Mon) True >>> print(day1 == Weekday.Tue) False >>> print(Weekday(1)) Weekday.Mon >>> print(day1 == Weekday(1)) True >>> Weekday(7) Traceback (most recent call last): ... ValueError: 7 is not a valid Weekday >>> for name, member in Weekday.__members__.items(): ... print(name, '=>', member) ... Sun => Weekday.Sun Mon => Weekday.Mon Tue => Weekday.Tue Wed => Weekday.Wed Thu => Weekday.Thu Fri => Weekday.Fri Sat => Weekday.Sat
列挙定数はメンバー名によって参照できるか、列挙定数はメンバー名に基づいて直接取得できることがわかります。値の値。
以上がこの記事で説明する内容の全てですが、この記事では主にpython列挙クラスの関連知識を紹介しますので、上記の内容を理解するために活用していただければ幸いです。この記事で説明したことがあなたのお役に立ち、Python の学習が容易になることを願っています。
関連知識の詳細については、php 中国語 Web サイトの Python チュートリアル 列を参照してください。
以上がPython 列挙型クラスの定義と関数 (分析例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。