Каково назначение аннотаций типов в Python?

Ответ

Аннотации типов (type hints) в Python, введенные в PEP 484, служат для указания ожидаемых типов данных для переменных, аргументов функций и возвращаемых значений. Важно понимать, что интерпретатор Python не использует их для принудительной проверки типов во время выполнения — их основная цель заключается в улучшении качества кода для разработчиков и инструментов статического анализа.

Ключевые преимущества:

  1. Статический анализ: Инструменты, такие как mypy, pyright или pyre, могут анализировать код до его запуска и обнаруживать потенциальные ошибки несоответствия типов.
  2. Повышение читаемости: Аннотации делают код самодокументируемым, позволяя быстрее понять, какие данные ожидает функция.
  3. Улучшение работы IDE: Редакторы кода (VS Code, PyCharm) используют аннотации для более точного автодополнения, навигации по коду и выявления ошибок «на лету».
  4. Упрощение рефакторинга: При изменении кода аннотации помогают отследить, где именно нужно внести правки, связанные с изменением типов данных.

Пример:

# Функция с аннотациями типов
def get_user_greeting(name: str, age: int) -> str:
    return f"Привет, {name}! Тебе уже {age} лет."

# Статический анализатор (mypy) обнаружит здесь ошибку,
# так как вторым аргументом ожидается int, а передается str.
greeting = get_user_greeting("Алиса", "25")
# mypy error: Argument 2 to "get_user_greeting" has incompatible type "str"; expected "int"