Sobes.tech
Junior — Middle
67

Можешь перечислить и объяснить основные принципы объектно-ориентированного программирования в языке Python?

Answer from AI

sobes.tech AI

Основные принципы объектно-ориентированного программирования (ООП) в Python:

  1. Инкапсуляция — объединение данных (атрибутов) и методов, работающих с этими данными, внутри класса. Позволяет скрыть внутреннюю реализацию и защитить данные от прямого доступа извне.

  2. Наследование — возможность создавать новый класс на основе существующего, наследуя его свойства и методы, что способствует повторному использованию кода и расширяемости.

  3. Полиморфизм — способность объектов разных классов иметь методы с одинаковыми именами, но разной реализацией. Позволяет использовать единый интерфейс для разных типов объектов.

  4. Абстракция — выделение существенных характеристик объекта и сокрытие несущественных деталей. В Python достигается через создание абстрактных классов и методов (например, с помощью модуля abc).

Пример простого класса с использованием ООП в Python:

class Animal:
    def __init__(self, name):
        self.name = name  # инкапсуляция данных

    def speak(self):
        raise NotImplementedError("Подклассы должны реализовать этот метод")  # абстракция

class Dog(Animal):  # наследование
    def speak(self):
        return f"{self.name} говорит Гав!"  # полиморфизм

class Cat(Animal):
    def speak(self):
        return f"{self.name} говорит Мяу!"

animals = [Dog("Шарик"), Cat("Мурка")]
for animal in animals:
    print(animal.speak())