Ответ
Type hinting (аннотации типов) — это синтаксис в Python, позволяющий указывать ожидаемые типы данных для переменных, аргументов функций и возвращаемых значений.
Важно: Аннотации типов не влияют на выполнение кода и не делают Python статически типизированным языком. Интерпретатор их игнорирует. Их основная цель — улучшение качества кода.
Основные цели использования:
- Статический анализ: Инструменты, такие как
mypy
илиpyright
, могут анализировать код до его запуска и находить потенциальные ошибки, связанные с несоответствием типов. - Улучшение читаемости: Аннотации служат дополнительной документацией, делая код более понятным для других разработчиков.
- Поддержка 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)