Pythonの学習(13)-列挙型クラス

特別な意味を持つ一部のクラスでは、インスタンス化されるオブジェクトの数が固定されていることがよくあります。たとえば、クラスを使用して月を表す場合、このクラスには最大12個のインスタンスオブジェクトがあります。別の例では、クラスを使用してシーズンを表し、このクラスのインスタンス最大で4つのオブジェクトがあります。この特別なクラスの場合、 列挙型列挙クラスが新たに追加されたPythonの3.4。つまり、インスタンス化されたオブジェクトの数が固定されているこれらのクラスの場合、列挙型クラスを使用してそれらを定義できます。クラスを列挙型クラスとして定義する場合は、enumモジュールのEnumクラスから継承させるだけで済みます。

例えば:

from enum import Enum
class Color(Enum):
    # 为序列值指定value值
    red = 1
    green = 2
    blue = 3

Color列挙型クラスでは、赤、緑、および青はすべてこのクラスのメンバーです(クラス変数として理解できます)。列挙クラスの各メンバーは、nameとvalueの2つの部分で構成されていることに注意してください。ここで、name属性valueは列挙値の変数名(赤など)であり、valueは列挙値のシリアル番号(シリアル番号)を表します。番号は通常1スタートからです)。Enum()関数は2つのパラメーターを受け入れます。最初のパラメーターは列挙クラスのクラス名を指定するために使用され、2番目のパラメーターは列挙クラスの複数のメンバーを指定するために使用されます。

列挙型クラスの各メンバーの値は、クラスの外部では変更できないことに注意してください。さらに、列挙クラスは__members__属性も提供します。これは、列挙クラスのすべてのメンバーを含むディクショナリです。この属性をトラバースすることで、列挙クラスの各メンバーにアクセスすることもできます。

Python列挙クラスの各メンバーは、名前が互いに異なることを確認する必要がありますが、値は同じでもかまいません。

おすすめ

転載: blog.csdn.net/qq_35789421/article/details/113645800