Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗pyOpMiInr 144 of 174 menu
◀ ▶

Множественное наследование в ООП в Python

Класс в Python может наследовать сразу от нескольких родителей. В скобках перечисляют базы через запятую: class Child(ParentA, ParentB).

Часто вторым родителем подключают небольшой класс-примесь: обычный класс с готовыми методами, который добавляет поведение основному классу. Методы примеси у потомка выглядят своими, как если бы они были написаны в самом классе.

Синтаксис примеси такой же, как у класса. Отдельного ключевого слова нет - это просто класс, который указывают вторым (или третьим) родителем. Объект примеси сам по себе создавать не обязательно: ее подключают в объявлении потомка.

Давайте посмотрим на практическом примере. Пусть дан класс-примесь Helper с геттерами для name и age:

class Helper: def get_name(self): return self.name def get_age(self): return self.age

Пусть основной класс User задает свойства в конструкторе, а геттеры берет от примеси:

class UserBase: def __init__(self, name, age): self.name = name self.age = age class User(UserBase, Helper): pass

После такого наследования у User есть конструктор от UserBase и методы get_name, get_age от Helper. Обращаться к ним можно на объекте User:

user = User('john', 30) print(user.get_name()) # выведет 'john' print(user.get_age()) # выведет 30
← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить