На этом шаге мы рассмотрим примеси и их использование.
Множественное наследование, поддерживаемое Python, позволяет реализовать интересный способ расширения функциональности классов с помощью так называемых примесей (mixins). Примесь - это класс, включающий какие-либо атрибуты и методы, которые необходимо добавить к другим классам. Объявляются они точно так же, как и обычные классы:
class Mixin: # Определяем сам класс-примесь attr = 0 # Определяем атрибут примеси def mixin_method(self): # Определяем метод примеси print("Метод примеси")
Теперь объявим два класса, добавим к их функциональности ту, что определена в классе-примеси Mixin, и проверим ее в действии:
class Class1 (Mixin): def method1(self): print("Метод класса Class1") class Class2 (Class1, Mixin): def method2(self): print("Метод класса Class2") c1 = Class1() c1.method1() c1.mixin_method() # Classl поддерживает метод примеси c2 = Class2() c2.method1() c2.method2() c2.mixin_method() # Class2 также поддерживает метод примеси
Результат выполнения приложения:
Метод класса Class1
Метод примеси
Метод класса Class1
Метод класса Class2
Метод примеси
Примеси активно применяются в различных дополнительных библиотеках - в частности, в популярной библиотеке Web-программирования Django.
На следующем шаге мы рассмотрим специальные методы.