在 Python 中使用random.choice()随机获取枚举的成员

使用带有枚举的 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

在 Python 中使用random.choice()随机获取枚举的成员

我们使用 list() 类将枚举转换为枚举成员列表。

random.choice() 方法接受一个序列并从非空序列中返回一个随机元素。

由于枚举不是序列,我们不能直接将一个传递给 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).name)  # SMALL
print(random.choice(my_list).value)  # 2