У меня есть несколько классов, которые выглядят следующим образом:
class Base:
subs = [Sub3,Sub1]
# Note that this is NOT a list of all subclasses!
# Order is also important
class Sub1(Base): pass
class Sub2(Base): pass
class Sub3(Base): pass
...
Теперь это не удается, потому что Sub1 и Sub3 не определены, когда Base.subs. Но, очевидно, я не могу поставить подклассы перед базой. Есть ли способ переназначить классы в Python? Я хочу работать с isinstance
, поэтому типы в subs фактически должны быть такими же, как и более поздние объявленные подклассы, недостаточно, чтобы они имели одно и то же имя и другие свойства.
Один способ решения: Base.subs = [Sub3,Sub1]
после определения подклассов, но мне не нравится разделять мой класс таким образом.
Изменить: Добавлена информация о заказе