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