python - 枚举后需要逗号才能正确输出要列出的值
问题描述
我正在尝试创建一个将 Enum 的值转换为列表的辅助函数。
如果我这样做,它会起作用:
from enum import Enum
class TestEnum(Enum):
item1 = 'Def1',
item2 = 'Def2',
item3 = 'Def3',
@staticmethod
def createListFromEnum(enum):
return [elem.value[0] for elem in enum]
print(createListFromEnum(TestEnum))
哪个输出:
['Def1','Def2','Def3']
但是,如果我不在最后一项后面加上逗号,我会得到:
['Def1','Def2','D']
因为最终条目由于某种原因没有注册为元组。我已经查看了将枚举转换为值列表的其他响应,但它们似乎都没有解决这个问题。
解决方案
您不需要枚举中的逗号。
我认为这就是你想要的:
from enum import Enum
class TestEnum(Enum):
item1 = 'Def1'
item2 = 'Def2'
item3 = 'Def3'
def createListFromEnum(enum):
return [elem.value for elem in enum]
print(createListFromEnum(TestEnum))
输出:
['Def1', 'Def2', 'Def3']
请参阅文档:https ://docs.python.org/3/library/enum.html#creating-an-enum
推荐阅读
- dialogflow-es - 无法让丰富的按钮在对话流上工作。它返回空响应
- reactjs - 如何在useEffect-React加载的组件中渲染内容
- docker - 将内容从不同的 docker 镜像复制到在 k8s 作业中运行的容器
- kotlin - 如何在 Kotlin 中以位、最小值和最大值输出 Int 大小?
- c# - 如何在c#中使用``
- php - 无法退还 EasyPost 测试货件
- optimization - 使用 PuLP 理解价格优化并制定问题
- python - gunicorn 无法启动烧瓶服务器:ModuleNotFoundError: No module named 'requests'
- anaconda - Anaconda Navigator GUI 中的 JupyterLab 未更新
- nginx - 在 nginx 中启用盗链保护