Я хочу объединить ограничения из текущего и унаследованного классов только после загрузки класса (не для объекта!).
class Domain(Validatable):
constraints = {...}
Для этого я определил метод _initialize_class_not_instance
, который должен вызываться один раз для каждого класса:
class Validatable:
@classmethod
def _initialize_class_not_instance(cls):
# merge constraints from derived class and base classes
pass
__class__._initialize_class_not_instance() # doesn't work
# Validatable._merge_constraints() # doesn't work too
Проблема в том, что __class__
не существует в этом контексте и Validatable
тоже не определено. Но я хочу избежать того, что пользователь моего API должен явно вызывать метод initialize или должен использовать дополнительный декоратор класса.
Есть идеи, как инициализировать класс?