Полиморфизм позволяет использовать объекты разных типов через общий интерфейс. В Python один и тот же метод или операция могут вести себя по-разному в зависимости от объекта, к которому они применяются.
+ или == можно переопределить для пользовательских классов, используя специальные дандер-методыПереопределение методов:
class Dog:
def speak(self): return "Woof"
class Cat:
def speak(self): return "Meow"
Duck typing:
def make_sound(animal):
print(animal.speak()) # Работает для любого объекта с методом speak()
Перегрузка операторов:
class Vector:
def __add__(self, other):
return Vector(self.x + other.x, self.y + other.y)
Полиморфизм позволяет писать гибкий и переиспользуемый код. Функции могут работать с объектами разных типов, не нужно знать их точный класс, если эти объекты предоставляют ожидаемый интерфейс. Это один из ключевых принципов написания чистого и расширяемого кода на Python.
Duck typing в Python требует, чтобы все объекты наследовались от общего базового класса, чтобы считаться полиморфными.
Новый — ещё не проверен сообществом
Вы