首页 > 解决方案 > Python 打字:给定一组值

问题描述

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

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

def typed_method(parameter):
    if not parameter in valid_parameters:
        raise ValueError("invalid parameter")

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

标签: pythontyping

解决方案


此功能刚刚在 Python 3.8 中引入:typing.Literal. 有关详细信息,请参阅PEP 586

例子:

def typed_method(parameter: Literal["value", "other value"]):
    pass

推荐阅读