Junior — Middle
Тавсифи концепсияи duck typing ва фарқияти он аз типизатсияи статикӣ дар барномасозӣ.
sobes.tech AI
Ҷавоб аз AI
Duck typing — это концепция в программировании, при которой тип объекта определяется не по его классу или интерфейсу, а по наличию определённых методов и свойств. Если объект ведёт себя как "утка" (имеет необходимые методы), то он считается подходящим.
Отличие от статической типизации:
- В статической типизации типы проверяются на этапе компиляции, и объекты должны явно соответствовать определённым типам.
- В duck typing проверка происходит во время выполнения, и важна только совместимость интерфейса (методов/свойств), а не наследование или объявленные типы.
Пример на Python (duck typing):
class Duck:
def quack(self):
print("Кря-кря")
class Person:
def quack(self):
print("Я могу крякать как утка")
def make_it_quack(thing):
thing.quack()
make_it_quack(Duck()) # Кря-кря
make_it_quack(Person()) # Я могу крякать как утка
Здесь функция не заботится о типе объекта, а только о наличии метода quack.