Python 键入提示以获取可能值的列表

Python 键入提示以获取可能值的列表,python,type-hinting,Python,Type Hinting,我有一个可以接受固定值列表的函数:例如 def func(mode="a"): if mode not in ["a", "b"]: raise AttributeError("not ok") 有没有办法键入提示,它只能是这两个值中的一个?我想您需要一个: 这是在Python3.8中通过引入的 使用枚举而不是字符串?@jornsharpe是的,但这是这个用例的一个很大的仪式:)我有一种唠叨的感觉,现在它应该是可能的,但我不记得怎么了。非常感谢,我的google fu找到了除

我有一个可以接受固定值列表的函数:例如

def func(mode="a"):
   if mode not in ["a", "b"]:
      raise AttributeError("not ok")
有没有办法键入提示,它只能是这两个值中的一个?

我想您需要一个:


这是在Python3.8中通过引入的

使用枚举而不是字符串?@jornsharpe是的,但这是这个用例的一个很大的仪式:)我有一种唠叨的感觉,现在它应该是可能的,但我不记得怎么了。非常感谢,我的google fu找到了除此之外的任何东西!请注意,这需要以下导入:
从键入扩展导入Literal
@MaiKar,这取决于您正在使用的Python版本-
从键入扩展导入如果您需要3.5-3.7的后台端口,
从键入3.8及更高版本的标准库中导入。还有一个来自PyPI的
,不知道它支持多少。我有一个列表:
my_list=[“a”,“b”,“c”]
,我想将这个列表用作值和文本类型。但是,当我执行
Literal[my_list]
时,Literal会抱怨。你知道我如何得到一个预定义列表的文本吗?
def func(mode="a": Literal["a", "b"]):
    if mode not in ["a", "b"]:
        raise AttributeError("not ok")