Что такое type hinting в Python и для чего он используется

Ответ

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

Важно: Аннотации типов не влияют на выполнение кода и не делают Python статически типизированным языком. Интерпретатор их игнорирует. Их основная цель — улучшение качества кода.

Основные цели использования:

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

Пример:

from typing import List, Optional

def process_data(items: List[int], user_id: Optional[int] = None) -> str:
    """Обрабатывает список чисел и возвращает отчет."""
    if user_id:
        report = f"Отчет для пользователя {user_id}:n"
    else:
        report = "Анонимный отчет:n"

    total = sum(items)
    report += f"Сумма элементов: {total}"
    return report

# Корректное использование
result = process_data([1, 2, 3], user_id=101)
print(result)

# Статический анализатор (mypy) обнаружит здесь ошибку,
# так как мы передаем строку вместо списка чисел.
# process_data("неверный тип", user_id=102)