randint - random python 3
python 3.4: random.choice en Enum (1)
Un Enum
no es una secuencia , por lo que no puede pasarlo a random.choice()
, que intenta seleccionar un índice entre 0 y len(Foo)
. Al igual que un diccionario, el acceso de índice a un Enum
espera que los nombres de enumeración se pasen, por lo que Foo[<integer>]
falla aquí con un KeyError
.
Puedes lanzarlo a una lista primero:
bar = random.choice(list(Foo))
Esto funciona porque Enum
soporta la iteración .
Manifestación:
>>> from enum import Enum
>>> import random
>>> class Foo(Enum):
... a = 0
... b = 1
... c = 2
...
>>> random.choice(list(Foo))
<Foo.a: 0>
Me gustaría usar random.choice en un Enum.
Lo intenté :
class Foo(Enum):
a = 0
b = 1
c = 2
bar = random.choice(Foo)
Pero este código no funciona, ¿cómo puedo hacer eso?