Sobes.tech
Назад к вопросам
Junior — Middle
74

Какие подходы позволяют реализовать полиморфизм в Python?

Ответ от нейросети

sobes.tech AI

В Python полиморфизм реализуется несколькими способами:

  1. Наследование и переопределение методов — базовый класс определяет метод, а подклассы реализуют его по-своему.

  2. Duck Typing — объект считается подходящим, если у него есть нужные методы или свойства, независимо от его типа.

  3. Абстрактные базовые классы (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, что и есть проявлением полиморфизма.