如何解决如何在Python中提示输入字符串枚举
我很好奇如何键入一个字符串枚举,例如: [“ keyword1”,“ keyword2”]
我希望一些变量v等于任何这些字符串文字。我可以用文字的并集来实现这一点-Union [Literal [“ keyword1”],Literal [“ keyword2”]],但是如果将来更改其中一个关键字,将使维护变得困难。 理想情况下,我想定义如下内容:
class Keywords(enum):
keywordOne = "keyword1"
keywordTwo = "keyword2"
v: valueOf[Keywords] = Keywords.keywordOne.value # v = "keyword1"
但是我不确定如何在MyPy中完成类似的事情
解决方法
您快到了。似乎您正在寻找的是一个自定义枚举对象,该对象本身已键入,然后键入指示该枚举用法的注释。像这样:
from enum import Enum
from typing import Literal
class CustomKeyword(Enum):
keywordOne: Literal["keyword1"] = "keyword1"
keywordTwo: Literal["keyword2"] = "keyword2"
v: CustomKeyword = CustomKeyword.keywordOne
这不会给您预期的结果吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。