Аннотации функций — это произвольные выражения Python, прикреплённые к параметрам функции и возвращаемым значениям, представленные в PEP 3107. Они хранятся в атрибуте __annotations__ функции, но по умолчанию не влияют на поведение во время выполнения.
def greet(name: str, age: int = 25) -> str:
return f"Hello, {name}!"
name: str — аннотация параметра-> str — аннотация возвращаемого значенияmypy или pyright__annotations__from __future__ import annotations (PEP 563)typing вроде List, Optional и Unionfrom typing import Optional
def find_user(user_id: int) -> Optional[str]:
...
print(find_user.__annotations__)
# {'user_id': <class 'int'>, 'return': typing.Optional[str]}
Аннотации чисто информационные — если только сторонний инструмент или фреймворк явно не обрабатывает их. Python сам не проверяет type annotations во время выполнения.
Аннотации функций автоматически проверяются Python во время выполнения, вызывая TypeError, если ты передашь аргумент неправильного типа в параметр с аннотацией.
Новый — ещё не проверен сообществом
Вы