python3の列挙クラス

  整数のような列挙(列挙型)は、それがデータ・タイプです。それは、典型的には、のような特定の有限のセットを、表現するために使用される定数のセット、ある月、可変の時間、いくつかの可能な値があり、週、状態、(男性、女性、両性具有)性別など、 、列挙タイプとして定義されます。

  定義が作成されると、列挙は不変のタイプは、そのメンバーの値を変更することはできません、名前を繰り返すことはできませんされて

  列挙メンバーは、整数、継承IntEnumクラスを指定するには、文字列、ブール、整数、などの複数のデータ型をサポートしています。

    列挙型のメンバーはサイズを比較することはできませんが、あなたのことができ、あるではない、と== ,! =同性愛または同等の比較。

サンプルコード:

列挙型の輸入列挙
 =列挙型(' '、(' '' 2月'' '' 4月'' '' 6月'' 7月'' 8月'' 9月'' 10月'" 11月' ' 12月"))
for name, member in Month.__members__.items():
    print(name, '=>', member, ',', member.value)

  valueプロパティは自動的にのメンバーに割り当てられているintデフォルトの定数1開始カウント。

  入手できる列挙型の場合は、より正確な制御、EnumカスタムPクラスの派生しました:

列挙輸入列挙型、ユニーク

@Unique
クラス平日(列挙型):
    サン = 0 #はSunの値が0に設定されている 
    月= 1  = 2  =を3  = 4  = 5  = 6

  @uniqueデコレータは、私たちは何の重複を確保しないかを確認することができます。

  これらの列挙型へのアクセスは、いくつかの方法を持つことができます。

>>> 1日目= Weekday.Mon
 >>> プリント(1日目)
Weekday.Mon
>>> プリント(Weekday.Tue)
Weekday.Tue
>>> プリント(平日[ ' ' ])
Weekday.Tue
>>> プリント(Weekday.Tue.value)
 2
>>> プリント(1日目== Weekday.Mon)
>>> プリント(1日目== Weekday.Tue)
>>> プリント(平日(1 ))
Weekday.Mon
>>> プリント(1日目==平日(1 ))
>>>平日(7 
トレースバック(最新の呼び出しの最後):
  ...
ValueError: 7がある ではない有効な曜日
 >>> ための名前、メンバー平日。__members__ .items():
...      プリント(名前、' => ' 、メンバー)
... => Weekday.Sun
マイ => Weekday.Mon
火曜 => Weekday.Tue => Weekday.Wed => Weekday.Thu
無料 => Weekday.Fri
土曜 => Weekday.Sat

  可視列挙定数を参照メンバ名の両方、および値の列挙定数の値から直接得ることができます。

 

練習

  学生の性別、列挙型、文字列を使用しないように属性

列挙輸入列挙型、ユニークな
 クラスの性別(列挙型):
  男性 = 0
  女性 = 1
 クラスの学生(オブジェクト):
     デフ __init__ (自己、名前、性別):
        self.name = 名前
        self.gender = 性別
 
BART =学生(' バート'、Gender.Male)

 

教師のpython3から遼参照。

おすすめ

転載: www.cnblogs.com/yunlong-study/p/12652418.html