Комбинация перечислений Python ⇐ Python
-
Anonymous
Комбинация перечислений Python
Я хотел бы создать новый класс Enum (IntEnum) на основе двух существующих. Для этого есть рабочее решение, например:
из уникального импорта перечисления, IntEnum из цепочки импорта itertools из коллекций импорт OrderedDict @уникальный класс FirstEnumClass(IntEnum): а = 1 б = 2 @уникальный класс SecondEnumClass(IntEnum): с = 3 д = 4 # здесь создается объединенный класс: CombinedEnumClass = unique(IntEnum('CombinedEnumClass', OrderedDict([(i.name, i.value) for i в цепочке(FirstEnumClass, SecondEnumClass)]))) Мой вопрос: есть ли какой-нибудь необычный способ добиться этого, чтобы было правильное определение класса? Например, переопределить некоторые методы метакласса или что-то в этом роде? Мне бы хотелось что-то вроде этого, чтобы можно было указать и строку документации:
@unique класс КомбинированныйEnumClass(IntEnum): """ строка документации """ # здесь нужна магия Есть идеи? Спасибо!
Я хотел бы создать новый класс Enum (IntEnum) на основе двух существующих. Для этого есть рабочее решение, например:
из уникального импорта перечисления, IntEnum из цепочки импорта itertools из коллекций импорт OrderedDict @уникальный класс FirstEnumClass(IntEnum): а = 1 б = 2 @уникальный класс SecondEnumClass(IntEnum): с = 3 д = 4 # здесь создается объединенный класс: CombinedEnumClass = unique(IntEnum('CombinedEnumClass', OrderedDict([(i.name, i.value) for i в цепочке(FirstEnumClass, SecondEnumClass)]))) Мой вопрос: есть ли какой-нибудь необычный способ добиться этого, чтобы было правильное определение класса? Например, переопределить некоторые методы метакласса или что-то в этом роде? Мне бы хотелось что-то вроде этого, чтобы можно было указать и строку документации:
@unique класс КомбинированныйEnumClass(IntEnum): """ строка документации """ # здесь нужна магия Есть идеи? Спасибо!
Мобильная версия