Python 3.5+typingпонятие
typing
модуль
Средства подсказок типов: Any, Optional, TypedDict, Protocol, обобщения — для mypy, IDE и читателя кода.
Синтаксис
import typing
typing описывает намерения, а не проверяет их: интерпретатор аннотации не сверяет, это делают mypy, pyright и IDE. С Python 3.9 вместо List[int] и Dict[str, int] пишут встроенные list[int] и dict[str, int], а с 3.10 вместо Optional[X] — X | None, так что из typing остаются в основном Any, Protocol, TypedDict, Literal и подобные. Не путайте с types: тот модуль про реальные объекты во время выполнения.
Примеры
from typing import get_type_hints
def double(x: int) -> int:
return x * 2
print(double("ab")) # → abab — подсказки типов при запуске не проверяются
print(get_type_hints(double)) # → {'x': <class 'int'>, 'return': <class 'int'>}
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности