Инкапсуляция означает объединение данных и методов в одном классе при одновременном ограничении прямого доступа к внутренним деталям. В Python это достигается с помощью модификаторов доступа — одно подчёркивание _attr сигнализирует о защищённом атрибуте, а двойное подчёркивание __attr вызывает name mangling, чтобы предотвратить внешний доступ.
Абстракция скрывает сложные детали реализации и предоставляет пользователю только необходимый интерфейс. В Python это обычно реализуется с помощью модуля ABC:
from abc import ABC, abstractmethod
Абстрактные классы определяют контракт, который должны соблюдать все подклассы, не раскрывая внутреннюю логику.
Наследование позволяет новому классу заимствовать и расширять поведение существующего класса, способствуя переиспользованию кода. Дочерний класс наследует атрибуты и методы от родительского и может переопределять их по необходимости.
Ключевые моменты:
super() для вызова конструктора или методов родительского классаПолиморфизм позволяет работать с разными классами через единый интерфейс, даже если их реализации различаются. В Python это естественным образом поддерживается через:
Эти четыре принципа работают вместе, создавая код, который:
В Python префикс с двойным подчёркиванием __attr полностью предотвращает доступ к этому атрибуту снаружи класса.
Новый — ещё не проверен сообществом
Вы