在 Python 中使用带有枚举的 random.choice()
Using random.choice() with Enums in Python
要将random.choice()
方法与枚举一起使用:
- 将枚举传递给
list()
类以将其转换为列表。 - 将列表传递给
random.choice()
方法以获取随机枚举成员。
主程序
from enum import Enum import random class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 my_list = list(Sizes) # 👇️ [<Sizes.SMALL: 1>, <Sizes.MEDIUM: 2>, <Sizes.LARGE: 3>] print(my_list) print(random.choice(my_list)) # 👉️ Sizes.LARGE print(random.choice(my_list)) # 👉️ Sizes.SMALL
我们使用list()
该类将枚举转换为枚举成员列表。
random.choice方法接受
一个序列并从非空序列返回一个随机元素。
由于枚举不是序列,我们不能直接将一个传递给方法。
random.choice()
该列表包含枚举成员,因此您可以访问name
或value
属性以获取随机选择的枚举成员的名称或值。
主程序
from enum import Enum import random class Sizes(Enum): SMALL = 1 MEDIUM = 2 LARGE = 3 my_list = list(Sizes) # 👇️ [<Sizes.SMALL: 1>, <Sizes.MEDIUM: 2>, <Sizes.LARGE: 3>] print(my_list) print(random.choice(my_list).name) # 👉️ SMALL print(random.choice(my_list).value) # 👉️ 2