Python 类型:给定的值集

jon*_*ach 3 python typing

我想将方法​​的参数键入为一组有限的有效值之一。所以基本上,我想要typing等效于以下最小示例:

valid_parameters = ["value", "other value"]

def typed_method(parameter):
    if not parameter in valid_parameters:
        raise ValueError("invalid parameter")
Run Code Online (Sandbox Code Playgroud)

typing已经检查过了,但我没有设法找到解决方案。也许我只是无法完全理解文档。有这样的解决方案吗?可以创建吗?

dec*_*eze 6

这个特性刚刚在 Python 3.8 中引入:typing.Literal. 有关详细信息,请参阅PEP 586

例子:

def typed_method(parameter: Literal["value", "other value"]):
    pass
Run Code Online (Sandbox Code Playgroud)