python 3.4: random.choice on Enum
问题 I would like to use random.choice on an Enum. I tried : class Foo(Enum): a = 0 b = 1 c = 2 bar = random.choice(Foo) But this code is not working, how can I do that ? 回答1: An Enum is not a sequence , so you cannot pass it to random.choice() , which tries to pick an index between 0 and len(Foo) . Like a dictionary, index access to an Enum instead expects enumeration names to be passed in, so Foo[<integer>] fails here with a KeyError . You can cast it to a list first: bar = random.choice(list