廖雪峰這部分寫的有點亂,推薦結合下面部落格學習:
筆記整理於廖雪峰官網和上述部落格
定義enum
from enum import enum,unique
#value屬性是賦給成員的int常量,預設由1開始
#所有列舉類成員名都不能重複
name=enum(
'name',(
'aaa'
,'bbb'
,'ccc'))
#成員值可以重複,第二個成員名被視為第乙個成員的別名
#自定義成員值需要enum的派生類
class
color
(enum)
: blue=
0#value被設定為0,而非預設的1
pink=
0 red=
2#只能獲取到第乙個成員名
print
(color.blue)
#color.blue
print
(color.pink)
#color.blue
print
(color(0)
)#color.blue
@unique#成員值不能重複
class
color
(enum)
: blue=
0#value被設定為0
pink=
1 red=
2
列舉取值和比較from enum import enum,unique
@unique#成員值不能重複
class
color
(enum)
: blue=
0#value被設定為0
pink=
1 red=
2#通過成員名獲取成員
print
(color.blue)
#color.blue
print
(color[
'blue'])
#color.blue
#通過成員值獲取成員
print
(color(0)
)#color.blue
#獲取成員的名稱屬性name
print
(color.red.name)
#red
#獲取成員的值屬性value
print
(color.red.value)
#2#遍歷
for color in color:
print
(color)
#color.blue
#color.pink
#color.red
for color in color.__members__.items():
print
(color)
#('blue', )
#('pink', )
#('red', )
for name,member in color.__members__.items():
print
(name,
' '
,member,
' '
,member.value)
#blue color.blue 0
#pink color.pink 1
#red color.red 2
#is 、is not、==、!=
color.red is color.red #true
color.red ==color.red #true
color.red is
not color.blue #true
color.red !=color.blue #true
#value可以比較,成員不能比較
color.red.value>color.blue.value#true
color.red>color.blue
#typeerror: '>' not supported between instances of 'color' and 'color'
擴充套件列舉 intenum
直接複製部落格內容
intenum可以進行不同型別的整數列舉的比較
from enum import intenum
class
shape
(intenum)
: circle =
1 square =
2class
request
(intenum)
: post =
1 get =
2print
(shape.circle ==1)
# true
print
(shape.circle <3)
# true
print
(shape.circle == request.post)
# true
print
(shape.circle >= request.post)
# true
# -*- coding: utf-8 -*-
from enum import enum, unique
@unique
class
gender
(enum)
: male =
0 female =
1class
student
(object):
def__init__
(self, name, gender)
: self.name = name
# 開始沒有考慮到判斷類別和報錯,直接self.gender=gender
#看討論才發現這個細節if(
isinstance
(gender,gender)):
self.gender = gender
else
:raise valueerror(
'gender must be male(0) or female(1)!'
)# 測試:
bart = student(
'bart'
, gender.male)
if bart.gender == gender.male:
print
('測試通過!'
)else
:print
('測試失敗!'
)
Swift學習筆記 列舉
swift 中普通的列舉形式 enum direction 注意 在 swift 中,列舉的成員變數有著不同的值,他們不再是0,1,2,3 了 多個成員值也可以出現在同一行上,但是要用逗號隔開 enum direction 這一句過後,unknowdirection 就會被推斷是 direction...
C 學習筆記 列舉
一 c 的enum工具提供了另一種建立符號常量的方式,這種方式可以代替const。它還允許定義新型別,但必須按嚴格的限制進行。使用enum的語法與使用結構類似。例如 enum spectrum 這句語法包含兩個意義 1 讓spectrum成為新型別的名稱 spectrum被稱為列舉,就像struct...
Java學習筆記 列舉
public class testenum class color1第二種方式public class testenum class color2 public static final color2 red new color2 紅燈亮為1 public static final color2 g...