Python枚举类定义和使用方法
枚举是一种由一组固定的值所组成的类型,通常用于代表那些有限的、可枚举的值。
Python中的枚举是通过Enum类实现的,在使用枚举之前,需要先导入Enum类。
from enum import Enum
- 定义枚举类
定义一个枚举类的方式就是创建一个类,然后让其继承自Enum类,并在类中定义属性。
from enum import Enum
class Fruit(Enum):
APPLE = 0
BANANA = 1
ORANGE = 2
上面定义的Fruit枚举类包含了三个属性,分别是APPLE、BANANA、ORANGE。属性名是全大写的,值可以是任意类型,但是值必须是唯一的。
- 枚举类使用
使用枚举类的时候,可以通过属性访问枚举值,也可以通过枚举名称访问枚举值。
from enum import Enum
class Fruit(Enum):
APPLE = 0
BANANA = 1
ORANGE = 2
print(Fruit.APPLE) # Fruit.APPLE
print(Fruit.APPLE.value) # 0
print(Fruit['APPLE']) # Fruit.APPLE
print(Fruit(0)) # Fruit.APPLE
- 枚举值的比较
枚举值可以通过比较运算符进行比较,可以比较枚举名称和枚举值。
from enum import Enum
class Fruit(Enum):
APPLE = 0
BANANA = 1
ORANGE = 2
if Fruit.APPLE == Fruit.APPLE:
print("Fruit.APPLE == Fruit.APPLE") # Fruit.APPLE == Fruit.APPLE
if Fruit.APPLE == Fruit(0):
print("Fruit.APPLE == Fruit(0)") # Fruit.APPLE == Fruit(0)
if Fruit.APPLE == 0:
print("Fruit.APPLE == 0") # TypeError: unsupported operand type(s) for ==: 'Fruit' and 'int'
- 枚举类型的遍历
枚举类型可以通过for循环进行遍历。
from enum import Enum
class Fruit(Enum):
APPLE = 0
BANANA = 1
ORANGE = 2
for name, member in Fruit.__members__.items():
print(name, member, member.value)
"""
APPLE Fruit.APPLE 0
BANANA Fruit.BANANA 1
ORANGE Fruit.ORANGE 2
"""
示例1
from enum import Enum
class Color(Enum):
RED = 0xFF0000
GREEN = 0x00FF00
BLUE = 0x0000FF
COLOR = Color.RED
print(COLOR) # Color.RED
print(COLOR.value) # 16711680
print(Color.GREEN) # Color.GREEN
- 执行结果:
Color.RED
16711680
Color.GREEN
示例2
from enum import Enum
class Weekday(Enum):
MONDAY = 1
TUESDAY = 2
WEDNESDAY = 3
THURSDAY = 4
FRIDAY = 5
SATURDAY = 6
SUNDAY = 7
def is_workday(day):
if day in (Weekday.MONDAY, Weekday.TUESDAY, Weekday.WEDNESDAY, Weekday.THURSDAY, Weekday.FRIDAY):
return True
return False
print(is_workday(Weekday.MONDAY)) # True
print(is_workday(Weekday.SATURDAY)) # False
- 执行结果:
True
False
以上就是Python枚举类的定义和使用方法,希望对您有所帮助。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python枚举类定义和使用方法 - Python技术站