Tout d'abord, je ne sais pas si c'est la bonne approche. Je veux écrire une classe de décorateur qui sera utilisée avec des méthodes d'autres classes. Avant d'exécuter la méthode, j'aimerais vérifier si toutes les variables de classe requises sont initialisées. L'idéal serait quelque chose de similaire à ceci:Classe décorateur pour tester les variables de classe requises
class Test(object):
def __init__(self, f):
self.f = f
# some magic
def __call__(self):
self.f.magically_get_variable(required)
# do some checks and execute method or throw an exception
class Data(object):
def __init__(self, a, b):
self.a = a
@test
def sum(self):
required('self.a', 'self.b')
return self.a + self.b
Si cela est la façon dont il devrait être fait s'il vous plaît me conseiller sur la façon de le faire correctement.
+1: 'NameError' vous en dit plus que tout décorateur. C'est intégré. Cela fonctionne toujours. –