Bonjour,
J'ai cette classe
Pour laquelle il est très important que f() soit appelée au sein du context manager ouvert.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 class A: with some_context(): x = f(0) y = f(1)
Je voudrais automatiser ce with à l'aide d'une métaclasse, de sorte que ceci soit équivalent:
Si j'essaie de décorer B, c'est trop tard : ses attributs x,y ont été évalués, et f() a été appelée sans contexte.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 class B(meta=M): x = f(0) y = f(1)
Est-ce qu'une métaclasse me donne un hook suffisement tôt (avant que f() soit appelée) pour ajouter mon contexte ? Il faudrait que cela ait lieu avant que les attributs de classe soient construits !
Merci d'avance !
Partager