Je souhaite fusionner les contraintes de la classe actuelle et des classes héritées uniquement lorsqu'une classe est chargée (et non par objet !).
class Domain(Validatable):
constraints = {...}
Pour ce faire, j'ai défini une méthode _initialize_class_not_instance
qui doit être appelée une fois pour chaque classe :
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
Le problème est que __class__
n'existe pas dans ce contexte et Validatable
n'est pas non plus défini. Mais je veux éviter que l'utilisateur de mon API doive appeler explicitement la méthode d'initialisation ou utiliser un décorateur de classe supplémentaire.
Une idée sur la manière d'initialiser la classe ?