整数のような列挙(列挙型)は、それがデータ・タイプです。それは、典型的には、のような特定の有限のセットを、表現するために使用される定数のセット、ある月、可変の時間、いくつかの可能な値があり、週、状態、(男性、女性、両性具有)性別など、 、列挙タイプとして定義されます。
定義が作成されると、列挙は不変のタイプは、そのメンバーの値を変更することはできません、名前を繰り返すことはできませんされて
列挙メンバーは、整数、継承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から遼参照。