[英]Create a value lookup list for an enum
我想在Enum
添加一個查找列表作為靜態變量。 我能做的最好的就是
class Seed(IntEnum):
HEARTS = 0
DIAMONDS = 1
SPADES = 2
CLUBS = 3
@staticmethod
def value_list():
Seed.list = [s.value for s in Seed]
然后在代碼中我必須做
Seed.value_list()
初始化變量list
,這種方法不是靜態的,但對於所有實例都是相同的。 那我可以用
Seed.list
有沒有辦法做到這一點?
您可以編寫一個類裝飾器 :
def values_list(enum_cls):
# create the values_list attribute and then return the class
enum_cls.values_list = [member.value for member in enum_cls]
return enum_cls
@values_list
class Seed(IntEnum):
HEARTS = 0
DIAMONDS = 1
SPADES = 2
CLUBS = 3
print(Seed.values_list)
# [0, 1, 2, 3]
您需要返回值列表:
from enum import IntEnum
class Seed(IntEnum):
HEARTS = 0
DIAMONDS = 1
SPADES = 2
CLUBS = 3
@classmethod
def values(cls):
return [s.value for s in cls]
if __name__ == '__main__':
print(Seed.values())
[0, 1, 2, 3]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.