Назад к вопросам
Junior — Middle
67
Каким образом полиморфизм реализуется через принцип утиной типизации в 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()) # Я могу имитировать утку
Таким образом, полиморфизм достигается не через наследование, а через совместимость интерфейсов объектов.