在 Python 中将 random.choice() 与枚举一起使用

在 Python 中使用带有枚举的 random.choice()

Using random.choice() with Enums in Python

要将random.choice()方法与枚举一起使用:

  1. 将枚举传递给list()类以将其转换为列表。
  2. 将列表传递给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()

该列表包含枚举成员,因此您可以访问namevalue
属性以获取随机选择的枚举成员的名称或值。

主程序
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