У меня есть вложенное перечисление, которое содержит два возможных значения параметра класса. Я хотел бы указать enum в качестве значения по умолчанию для класса в __init__
Что-то, что выглядело бы так:
from enum import IntEnum as IntEnum
class A:
class AParam(IntEnum):
TYPE_1 = 1
TYPE_2 = 2
def __init__(self, param=A.AParam.TYPE_1):
self.param = param
Конечно, это не работает, ядумаю, потому что класс еще не полностью построен.
Альтернативное решение, которое я сейчас делаю, заключается в следующем:
from enum import IntEnum as IntEnum
class A:
class AParam(IntEnum):
TYPE_1 = 1
TYPE_2 = 2
def __init__(self, param=None):
if param is None:
param = A.AParam.TYPE_1
self.param = param
По нескольким причинам я не хочу использовать строки вместоиз перечислений. Я мог бы также использовать не помещать параметр в init
, а просто позволить пользователю класса использовать саму переменную-член. Но тогда параметр по умолчанию не такой явный.
Есть ли другой способ передачи вложенного перечисления в качестве значения по умолчанию для метода __init__
? Или это просто невозможно ...?