Я пытаюсь объявить абстрактный класс A
конструктором со стандартным поведением: все подклассы должны инициализировать элемент self.n
:
from abc import ABCMeta
class A(object):
__metaclass__ = ABCMeta
def __init__(self, n):
self.n = n
Однако я не хочу, чтобы класс A
был создан, потому что, ну, это абстрактный класс. Проблема в том, что это действительно разрешено:
a = A(3)
Это не вызывает ошибок, когда я ожидаю, что это произойдет.
Итак: как я могу определить неинтуитивный абстрактный класс, определяя поведение по умолчанию для конструктора?