Можешь перечислить виды полиморфизма, применяемые в Python?
Answer from AI
sobes.tech AI
В Python применяются следующие виды полиморфизма:
-
Полиморфизм подтипов (наследование) — объекты разных классов, связанных наследованием, могут использоваться через общий интерфейс. Например, разные подклассы реализуют один и тот же метод с разной логикой.
-
Полиморфизм параметров (перегрузка функций) — в Python нет классической перегрузки по типам, но можно реализовать функции, принимающие разные типы аргументов и ведут себя по-разному (динамическая типизация).
-
Полиморфизм включения (duck typing) — объект считается подходящим, если у него есть необходимые методы или свойства, независимо от его класса. Например, если объект "крякает" и "плавает", его можно считать уткой.
Пример duck typing:
class Duck:
def quack(self):
print("Кря-кря")
class Person:
def quack(self):
print("Я могу крякать как утка")
def make_it_quack(duckish):
duckish.quack()
make_it_quack(Duck()) # Кря-кря
make_it_quack(Person()) # Я могу крякать как утка
Таким образом, полиморфизм в Python основан на гибкости динамической типизации и наследовании.