from abc import ABC, abstractmethod
class MyAbstractClass(ABC):
"""Docstring explaining the contract."""
@abstractmethod
def required_method(self) -> None:
"""Describe what the subclass must do."""
pass
class ConcreteClass(MyAbstractClass):
def required_method(self) -> None:
print("Implemented")
Модуль abc
Конструкция
Назначение
Пример
ABC
Базовый класс для абстрактных классов
class Shape(ABC):
@abstractmethod
Декоратор абстрактного метода
@abstractmethod def area(self):
@abstractclassmethod
Абстрактный классовый метод (устарел, см. заметку)
—
@abstractstaticmethod
Абстрактный статический метод (устарел)
—
Проверить по документации: декораторы @abstractclassmethod и @abstractstaticmethod объявлены устаревшими; используйте сочетание @classmethod / @staticmethod с @abstractmethod. См. abc.abstractmethod.
Синтаксис пользовательских исключений
class MyError(Exception):
"""Explain when this error is raised."""
pass
class ValidationError(ValueError):
"""Raised for invalid user input."""
pass