все Python 3abcфункция
abc.abstractmethod
абстрактные классы
Декоратор, помечающий метод абстрактным: подкласс обязан его переопределить, иначе остаётся абстрактным.
Синтаксис
@abc.abstractmethod
Сам декоратор ничего не запрещает — он лишь ставит на функции флаг __isabstractmethod__; отказ создавать экземпляр обеспечивает метакласс ABCMeta. Поэтому в классе без ABC или ABCMeta пометка тихо ни на что не влияет, и «абстрактный» метод спокойно вызывается. В связке с другими декораторами abstractmethod должен быть самым внутренним: @classmethod или @property идут выше него.
Примеры
import abc
class B(abc.ABC):
@abc.abstractmethod
def f(self): ...
print('f' in B.__abstractmethods__) # → True
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности