abc (Abstract Base Classes).
  Для этого класс наследуется от abc.ABC и методы, которые должны быть реализованы в подклассах, декорируются @abc.abstractmethod.
  В Python абстрактные классы создаются с использованием модуля abc (Abstract Base Classes).  Для создания абстрактного класса необходимо:
abc: import abcabc.ABC (или использовать метакласс abc.ABCMeta).@abc.abstractmethod для обозначения абстрактных методов.Пример:
import abc
class Shape(abc.ABC):
    @abc.abstractmethod
    def area(self):
        pass
    @abc.abstractmethod
    def perimeter(self):
        pass
class Circle(Shape):
    def __init__(self, radius):
        self.radius = radius
    def area(self):
        return 3.14 * self.radius * self.radius
    def perimeter(self):
        return 2 * 3.14 * self.radius
# a = Shape() # TypeError: Can't instantiate abstract class Shape with abstract methods area, perimeter
c = Circle(5)
print(c.area())
print(c.perimeter())
  Что означает абстрактный класс?
TypeError.В Python, использование абстрактных классов помогает обеспечить строгий контракт между классами и их наследниками, что делает код более надежным и поддерживаемым. Хотя утиная типизация (duck typing) является распространенной парадигмой в Python, использование абстрактных классов позволяет добавить больше контроля и явной структуры в иерархии классов.