rnd randint number examples example python random enums python-3.4

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?