Back to questions
Junior — Middle
68
Можешь пояснить, что такое статическая типизация по сравнению с утиной типизацией?
Answer from AI
sobes.tech AI
Статическая типизация — это когда типы переменных определяются и проверяются на этапе компиляции. Например, в Java или C++ тип переменной фиксирован и ошибки типов выявляются до запуска программы.
Утиная типизация (duck typing) — это динамический подход, распространённый в Python, где важна не принадлежность объекта к определённому типу, а наличие необходимых методов и свойств. Если объект "ведёт себя как утка" (имеет нужные методы), то он считается подходящим.
Пример утиной типизации в Python:
def quack(duck):
duck.quack()
class Duck:
def quack(self):
print("Кря-кря")
class Person:
def quack(self):
print("Я могу крякать как утка")
quack(Duck()) # Кря-кря
quack(Person()) # Я могу крякать как утка
Здесь важно, что объект имеет метод quack(), а не его тип.