Пример 1. Использование TypeVar:
Код: Выделить всё
from typing import TypeVar
StrOrInt = TypeVar("StrOrInt", str, int)
def return_same_type_typevar(x: StrOrInt) -> StrOrInt:
if isinstance(x, str):
# process str
return x
else:
# process int
return x
Код: Выделить всё
from typing import overload
@overload
def return_same_type_overload(x: str) -> str:
...
@overload
def return_same_type_overload(x: int) -> int:
...
def return_same_type_overload(x):
if isinstance(x, str):
# process str
return x
else:
# process int
return x
Конечно, это тривиальный пример. Код, который я рассматриваю, вероятно, больше будет использовать в качестве входных данных pandas Series или DataFrame, а не str и int.
Подробнее здесь: https://stackoverflow.com/questions/645 ... vs-typevar
Мобильная версия