我有一个函数,它应该只允许某些值作为它的输入参数。如果向函数传递了任何其他值,我想引发一个TypeError。我正在尝试使用typing.Literal来实现它,例如下面来自https://www.python.org/dev/peps/pep-0586/的示例。
from typing import Literal
def accepts_only_four(x: Literal[4]) -> None:
pass
accepts_only_four(4) # OK
accepts_only_four(19) # Rejected我期望看到acceps_only_four(19)的错误,但我仍然收到一个“通过”。
发布于 2021-11-10 10:55:33
基于注释使用pydantic中的@validate_arguments装饰器解决了问题。
https://stackoverflow.com/questions/69911453
复制相似问题