Какие существуют виды типизации в Python?
Answer from AI
sobes.tech AI
В Python существуют разные виды типизации, которые помогают понять, как язык работает с типами данных:
- Динамическая типизация — тип переменной определяется во время выполнения, и переменная может менять тип. Например:
x = 5 # x — int
x = 'hi' # теперь x — str
-
Слабая типизация — Python позволяет неявные преобразования типов, например, сложение числа и строки вызовет ошибку, но в некоторых случаях преобразования происходят автоматически.
-
Duck typing — тип объекта определяется не по его классу, а по наличию необходимых методов и свойств. Если объект «ведёт себя как утка», он может использоваться в соответствующем контексте.
-
Статическая типизация с подсказками (type hinting) — начиная с Python 3.5, можно указывать типы переменных и функций для улучшения читаемости и поддержки инструментов статического анализа:
from typing import List
def greet(name: str) -> str:
return 'Hello, ' + name
numbers: List[int] = [1, 2, 3]
- Статический анализ типов — с помощью инструментов вроде
mypyможно проверять соответствие типов в коде без запуска программы.
Таким образом, Python сочетает динамическую и слабую типизацию с возможностью статической типизации через аннотации и внешние инструменты.