Я создал такой объект Enum
:
class Gender(Enum):
FEMALE = 'female'
MALE = 'male'
RANDOM = random.choice([FEMALE, MALE])
и я хочу получать действительно случайное значение каждый раз, но он не работает:
>>> class Gender(Enum):
... MALE = 'male'
... FEMALE = 'female'
... RANDOM = choice([MALE, FEMALE])
...
>>> Gender.RANDOM
<Gender.MALE: 'male'>
>>> Gender.RANDOM
<Gender.MALE: 'male'>
>>> Gender.RANDOM
<Gender.MALE: 'male'>
>>> Gender.RANDOM
<Gender.MALE: 'male'>
Я также пробовал использовать лямбда, но он выглядит не очень хорошо, хотя он работает:
Gender.RANDOM()
Есть ли другой способ получить случайные значения каждый раз, не используя лямбда-выражения?
Мы используем этот объект enum как значение по умолчанию для аргумента некоторого метода, поэтому он должен быть атрибутом, а не функцией, потому что, когда мы используем Gender.FEMALE
, это не функция, это атрибут и Gender.RANDOM
также должен быть атрибутом:
def full_name(gender=Gender.FEMALE):
...
def full_name(gender=Gender.RANDOM):
...