Back to questions
Junior — Middle
75
Какие подходы позволяют реализовать полиморфизм в Python?
Answer from AI
sobes.tech AI
В Python полиморфизм реализуется несколькими способами:
-
Наследование и переопределение методов — базовый класс определяет метод, а подклассы реализуют его по-своему.
-
Duck Typing — объект считается подходящим, если у него есть нужные методы или свойства, независимо от его типа.
-
Абстрактные базовые классы (ABC) из модуля
abc— позволяют определить интерфейс с абстрактными методами, которые должны быть реализованы в подклассах.
Пример с Duck Typing:
class Cat:
def sound(self):
return "Meow"
class Dog:
def sound(self):
return "Woof"
def make_sound(animal):
print(animal.sound())
make_sound(Cat()) # Meow
make_sound(Dog()) # Woof
Здесь функция make_sound работает с любым объектом, у которого есть метод sound, что и есть проявлением полиморфизма.