ООП в Python #5

В нашем новом уроке по основам ООП на Python мы рассмотрим полиморфизм и работу с методами. Полиморфизм является ключевой концепцией ООП, которая позволяет объектам разных классов быть использованными через один и тот же интерфейс.

🔸Что такое полиморфизм? Полиморфизм – это способность объектов разных классов реагировать на одни и те же методы по-разному. В Python это достигается благодаря переопределению методов в дочерних классах.

🔹Пример полиморфизма Рассмотрим пример с классами Animal, Dog, и Cat, где каждый класс имеет метод make_sound, но реализует его по-своему:

class Animal:
    def make_sound(self):
        raise NotImplementedError("Subclass must implement abstract method")

class Dog(Animal):
    def make_sound(self):
        return "Woof! Woof!"

class Cat(Animal):
    def make_sound(self):
        return "Meow! Meow!"

🔹Использование полиморфизма Создадим список животных и вызовем для каждого метод make_sound:

animals = [Dog(), Cat()]

for animal in animals:
    print(animal.make_sound())

Вывод: Woof! Woof! Meow! Meow!

🔹Полиморфизм через абстрактные классы Python поддерживает полиморфизм и через абстрактные классы, используя модуль abc (abstract base classes):

from abc import ABC, abstractmethod

class Animal(ABC):
    @abstractmethod
    def make_sound(self):
        pass

class Dog(Animal):
    def make_sound(self):
        return "Woof! Woof!"

class Cat(Animal):
    def make_sound(self):
        return "Meow! Meow!"

🔹Пример с общим интерфейсом Полиморфизм позволяет использовать общий интерфейс для работы с разными объектами:

def animal_sound(animal: Animal):
    print(animal.make_sound())

dog = Dog()
cat = Cat()

animal_sound(dog)  # Вывод: Woof! Woof!
animal_sound(cat)  # Вывод: Meow! Meow!

🔸Заключение Полиморфизм упрощает расширение и поддержку кода, так как позволяет использовать единый интерфейс для работы с различными объектами. В следующем уроке мы рассмотрим магические методы и перегрузку операторов. Оставайтесь с нами! 🚀

➡️Читайте нас в Telegram и Сетке

#CODERIKK #Python #ООП #Полиморфизм #Программирование #Обучение

ООП в Python #5
В нашем новом уроке по основам ООП на Python мы рассмотрим полиморфизм и работу с методами | Сетка — социальная сеть от hh.ru