У меня есть несколько классов, некоторые наследуют Enum, другие нет, и все они в конечном итоге смешиваются в большие массивы, как показано ниже:
from enum import Enum
class TestEnum(Enum):
VAL_A = 0
VAL_B = 1
class TestNotEnum():
def __init__(self):
self.var = 1
Поскольку я хочу, чтобы код был как можно более простым для использования другими, я хотел бы называть конструкторы всех классов одинаковым образом, чтобы избежать как можно большей путаницы.
Вот как я бы хотел их инициализировать:
classes = [TestEnum(), TestNotEnum()]
Класс TestNotEnum
не имеет проблем с ним, но TestEnum
выдает следующее исключение: TypeError: __call__() missing 1 required positional argument: 'value'
. Это связано с моим (плохим) использованием Enum.
Что я могу сделать, чтобы класс TestEnum
все еще наследовал Enum и имел конструктор без аргументов?
Я попробовал следующее (и несколько похожих настроек):
class TestEnum(Enum):
VAL_A = 0
VAL_B = 1
def __init__(self):
super(TestEnum, self).__init__()
но я получаю только другие ошибки, такие как TypeError: __init__() takes 1 positional argument but 2 were given