⚡ Кратко
Используйте эту страницу как шпаргалку: найдите нужную конструкцию, сравните синтаксис с примером и затем примените её в своём коде.
Множественное наследование
| Конструкция | Назначение |
class D(B, C): | Наследование от нескольких родителей |
D.__mro__ | Кортеж классов в порядке поиска |
D.mro() | Тот же порядок в виде списка |
super().method() | Вызов следующего метода в MRO |
Миксины и hasattr
| Конструкция | Назначение |
hasattr(obj, "name") | Проверка наличия атрибута |
class LoggableMixin: | Класс поведения без состояния |
Инкапсуляция
| Имя | Уровень | Примечание |
name | Публичный | Доступен отовсюду |
_name | Защищённый | Соглашение, доступен в наследниках |
__name | Приватный | Манглируется в _ClassName__name |
@property
@property
def value(self) -> int:
return self.__value
@value.setter
def value(self, new_value: int) -> None:
self.__value = new_value
Композиция vs Агрегация
| Признак | Композиция | Агрегация |
| Создание | Внутри класса | Передаётся извне |
| Связь | Жёсткая | Слабая |
| Жизненный цикл | Зависит от внешнего | Независим |