[英]random.choice on Enum
我想在Enum
上使用random.choice
。
我試過:
class Foo(Enum):
a = 0
b = 1
c = 2
bar = random.choice(Foo)
但是此代碼失敗並顯示KeyError
。 如何選擇Enum
的隨機成員?
一個Enum
不是一個序列,所以你不能將它傳遞給random.choice()
,它試圖在 0 和len(Foo)
之間選擇一個索引。 像字典一樣,對Enum
索引訪問期望傳入枚舉名稱,因此Foo[<integer>]
在這里失敗並出現KeyError
。
您可以先將其轉換為列表:
bar = random.choice(list(Foo))
這是有效的,因為Enum
確實支持迭代。
演示:
>>> from enum import Enum
>>> import random
>>> class Foo(Enum):
... a = 0
... b = 1
... c = 2
...
>>> random.choice(list(Foo))
<Foo.a: 0>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.