Ответ
Четыре ключевых принципа ООП формируют основу для создания гибких, масштабируемых и поддерживаемых программных систем. Они помогают управлять сложностью кода.
-
Инкапсуляция (Encapsulation) Объединение данных (атрибутов) и методов для их обработки в единый объект (класс) с сокрытием внутренней реализации. Это защищает данные от прямого неконтролируемого доступа.
class BankAccount: def __init__(self, initial_balance): # Атрибут __balance является "приватным" по соглашению self.__balance = initial_balance def deposit(self, amount): if amount > 0: self.__balance += amount def get_balance(self): return self.__balance
-
Наследование (Inheritance) Механизм, позволяющий создавать новый класс (потомок) на основе существующего (родителя), переиспользуя его атрибуты и методы. Это способствует повторному использованию кода.
class Animal: def speak(self): raise NotImplementedError("Subclass must implement abstract method") class Dog(Animal): def speak(self): return "Woof!" class Cat(Animal): def speak(self): return "Meow!"
-
Полиморфизм (Polymorphism) Способность объектов разных классов отвечать на один и тот же вызов метода по-разному. Это позволяет писать более общий и гибкий код, который может работать с объектами разных типов через единый интерфейс.
animals = [Dog(), Cat()] for animal in animals: # Вызывается один и тот же метод speak(), но результат разный print(animal.speak()) # Вывод: # Woof! # Meow!
-
Абстракция (Abstraction) Выделение наиболее значимых характеристик объекта и игнорирование второстепенных. Абстракция позволяет скрыть сложность реализации, предоставляя простой интерфейс для взаимодействия. В Python это часто реализуется через абстрактные базовые классы (ABC).