Bonjour,
Je voudrais bien utiliser les décorateurs dans mes scripts afin de simplement printer quand est ce que je rentre et sort d'une fonction ou méthode Rien de plus simple me direz vous.
La class inOut fonctionne bien pour une fonction, mais quand il s'agit d'une méthode au sein d'une class la bête ne fonctionne plus. J'ai l'impression que le problème est au niveau des attributs de la class qui ne sont pas envoyés.
Voici le code :
Je pensais effectuer l'envoie des attributs comme cela @inOut(self), mais cela ne fonctionne pas.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 class inOut(object): def __init__(self, f): self.f = f def __call__(self, *args, **kwargs): print 'start' functionReturn = self.f(*args, **kwargs) print 'end' return functionReturn class toto(): def __init__(self): self.x = 5 @inOut def bla(self): print self.x maClass = toto() maClass.bla()
Et malheureusement mes connaissances ne sont pas assez bonne pour trouver la solution.
Merci d'avance
Partager