Почему декоратор @abstractmethod влияет только на подклассы, полученные с использованием обычного наследования?

#python #python-3.x #abstract-class #pep #abc

#python #python-3.x #абстрактный класс #бодрость духа #abc

Вопрос:

PEP 3119 — Введение в абстрактные базовые классы гласит, что:

@abstractmethod влияет только на подклассы, полученные с использованием обычного наследования; «виртуальные подклассы», зарегистрированные методом register(), не затрагиваются.

Мне интересно, почему это так.

Какова цель abc.Тогда ABCMeta.register()?

В чем преимущество регистрации подклассов, а не создания подклассов напрямую через наследование?

PEP 3119

Комментарии:

1. register вообще не требует изменения существующего класса.

2. Не могли бы вы, пожалуйста, пояснить, почему это так? Какой цели register() служит, если это не изменяет существующий класс?