Ответ
Python использует динамическую и сильную типизацию.
-
Динамическая типизация (Dynamic Typing) Тип переменной определяется в момент выполнения (runtime), а не на этапе компиляции. Это позволяет присваивать одной и той же переменной значения разных типов.
# Тип переменной определяется значением, которое ей присвоено data = 42 # data - это int print(type(data)) data = "hello" # Теперь data - это str. Ошибки нет. print(type(data)) -
Сильная типизация (Strong Typing) Операции между несовместимыми типами запрещены без явного преобразования. Это предотвращает неожиданное поведение и ошибки.
# Попытка сложить строку и число вызовет ошибку # TypeError: can only concatenate str (not "int") to str result = "Your score is: " + 100 # Необходимо явное преобразование типа result_correct = "Your score is: " + str(100) # OK
С версии Python 3.5 также поддерживаются аннотации типов (type hints). Они не влияют на исполнение кода, но используются статическими анализаторами (например, Mypy) для поиска потенциальных ошибок на этапе разработки.
def greet(name: str) -> str:
return f"Hello, {name}"