Sobes.tech
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(), а не его тип.