Ответ
Проверка типов (type checking) — это процесс анализа кода с целью убедиться, что типы данных, используемые в операциях, совместимы друг с другом. В Python существует два подхода:
-
Динамическая типизация (по умолчанию) Проверка типов происходит во время выполнения кода. Если операция недопустима (например, сложение числа и строки), интерпретатор вызовет исключение
TypeError
.# Этот код выполнится, но упадет с ошибкой TypeError def add(a, b): return a + b add(5, "text") # Ошибка возникнет только в момент вызова
-
Статическая типизация (опционально) Проверка выполняется до запуска программы с помощью специальных инструментов (линтеров), таких как
mypy
. Для этого используется синтаксис аннотаций типов (type hints), введенный в PEP 484.Пример со статической проверкой:
# mypy обнаружит ошибку до запуска этого кода def greet(name: str) -> str: return f"Hello, {name}" greet("Alice") # OK greet(42) # Ошибка: Argument 1 to "greet" has incompatible type "int"; expected "str"
Ключевые преимущества статической проверки:
- Раннее обнаружение ошибок: Проблемы с типами выявляются на этапе разработки, а не у пользователя.
- Улучшение читаемости: Аннотации служат документацией, делая код понятнее.
- Помощь IDE: Редакторы кода используют аннотации для более точного автодополнения и анализа.