Python Glossary English

все 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Сообщить о неточности