Sobes.tech
Назад к вопросам
Junior — Middle
78

Можно ли рассматривать утиную типизацию как одну из форм полиморфизма в языке Python?

Ответ от нейросети

sobes.tech AI

Да, утиную типизацию можно рассматривать как форму полиморфизма в Python. В отличие от классического полиморфизма, основанного на наследовании, утиную типизацию характеризует способность объекта вести себя как определённый тип, если он реализует необходимые методы или свойства, независимо от своего фактического класса.

Например, если объект имеет метод quack(), то его можно использовать как "утку" без проверки типа:

class Duck:
    def quack(self):
        print("Кря-кря")

class Person:
    def quack(self):
        print("Я могу крякать как утка")

def make_it_quack(duck_like):
    duck_like.quack()

make_it_quack(Duck())
make_it_quack(Person())

Это демонстрирует, что важен не тип объекта, а наличие нужного интерфейса — суть утиной типизации и полиморфизма в Python.