我只想在加载类后合并来自当前类和继承类的约束(而不是每个对象!)。
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 的用户必须显式调用初始化方法或必须使用额外的类装饰器。
任何想法如何初始化类?