Как указать ожидаемое значение?
Есть функция, которая принимает на вход только -1, 0 и 1. Как мне указать это?
Так не работает:
from typing import Union
def do_anything(var: Union[-1, 0, 1]) -> dict:
...
Ответы (1 шт):
Автор решения: strawdog
→ Ссылка
Попробуйте использовать typing.Literal
tc.py:
from typing import Literal
def do_anything(var: Literal[-1, 0, 1]) -> dict:
return dict()
do_anything(2)
mypy tc.py
tc.py:6: error: Argument 1 to "do_anything" has incompatible type "Literal[2]"; expected "Union[Literal[-1], Literal[0], Literal[1]]" Found 1 error in 1 file (checked 1 source file)
from typing import Literal
def do_anything(var: Literal[-1, 0, 1]) -> dict:
return dict()
do_anything(1)
mypy tc.py
Success: no issues found in 1 source file