Абстрактный метод примеси в ООП в Python
В классе-примеси можно объявлять абстрактные методы. В этом случае класс, который наследует эту примесь, обязан будет реализовать такой метод. Абстрактный метод потомок обязан реализовать, иначе класс останется абстрактным.
Давайте посмотрим на примере. Пусть у нас есть вот такая примесь:
from abc import ABC, abstractmethod
class TestMixin(ABC):
def method1(self):
return 1
@abstractmethod
def method2(self):
pass
Пусть наша примесь используется классом
Test. Наличие в примеси абстрактного
метода обяжет программиста реализовать
его в классе, иначе будет ошибка при
создании объекта.
Давайте сделаем класс Test вместе
с методом method2:
class Test(TestMixin):
# Реализуем абстрактный метод:
def method2(self):
return 2
Test()
Скопируйте код моей примеси TestMixin
и код моего класса Test. Удалите из
класса метод method2. Убедитесь в
том, что отсутствие его реализации приведет
к ошибке при создании объекта.