Back to questions
Junior — Middle
66
Является ли полиморфизм в Python основанной на концепции утиной типизации?
Answer from AI
sobes.tech AI
Да, полиморфизм в Python во многом основан на концепции утиной типизации (duck typing). Это означает, что в Python важен не тип объекта, а наличие у него определённых методов и свойств, необходимых для выполнения операции. Например, если объект "крякает" и "ходит как утка", то Python позволит использовать его как утку, независимо от его фактического класса.
Пример:
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()) # Я могу крякать как утка
Здесь функция make_it_quack не проверяет тип объекта, а просто вызывает метод quack. Это и есть проявление полиморфизма через утиную типизацию.