Что такое type annotation?

Type annotation (аннотация типов) в Python — это способ явно указать, какого типа данные ожидаются в переменных, аргументах функций и их возвращаемых значениях.

📌 Они не влияют на выполнение кода (Python всё равно остаётся динамически типизированным языком) — это в первую очередь подсказка для разработчиков, IDE и инструментов статического анализа (mypy, pyright).


1. Синтаксис

Аннотации добавляются после имени переменной или параметра через двоеточие :, а для возвращаемого значения — через стрелку ->.

def greet(name: str, age: int) -> str:
    return f"Привет, {name}! Тебе {age} лет."

2. Аннотация переменных

username: str = "Alice"
age: int = 30
scores: list[int] = [10, 20, 30]

3. Сложные типы (модуль typing)

В Python до 3.9 для сложных структур используют typing:

from typing import List, Dict, Tuple, Optional

names: List[str] = ["Alice", "Bob"]
user: Dict[str, int] = {"age": 25}
coords: Tuple[int, int] = (10, 20)
maybe_value: Optional[int] = None  # int или None

С Python 3.9+ можно писать короче:


4. Аннотация Any, Union, Literal


5. Пример с классами


6. Пример в автотестах


Зачем использовать type annotations?

  • Улучшает читаемость кода.

  • Ускоряет понимание API функций.

  • Позволяет IDE делать автодополнение и проверку.

  • Упрощает рефакторинг.

  • Работает с mypy и другими линтерами для поиска ошибок до запуска кода.

Last updated

Was this helpful?