Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Dernière révision Les deux révisions suivantes | ||
decorateurs_modeles [2012/03/26 08:24] tyrtamos |
decorateurs_modeles [2012/03/26 18:04] tyrtamos |
||
---|---|---|---|
Ligne 249: | Ligne 249: | ||
print u" | print u" | ||
return result | return result | ||
+ | |||
+ | def resultat(self): | ||
+ | """ | ||
+ | if self.c == 0: | ||
+ | tm = 0 | ||
+ | else: | ||
+ | tm = self.tt/ | ||
+ | return c, tm | ||
+ | |||
@tempsexecmoyen | @tempsexecmoyen | ||
Ligne 275: | Ligne 284: | ||
#Temps moyen: 0.0003946 | #Temps moyen: 0.0003946 | ||
#4536 | #4536 | ||
+ | </ | ||
+ | |||
+ | J'ai ajouté la méthode ' | ||
+ | |||
+ | <code python> | ||
+ | print calcul.resultat() | ||
</ | </ | ||
Ligne 292: | Ligne 307: | ||
==== Décorateurs avec arguments ==== | ==== Décorateurs avec arguments ==== | ||
- | Même chose que le décorateur précédent, | + | Même chose que le décorateur précédent, |
+ | |||
+ | Par rapport aux code habituellement présenté comme modèle, j' | ||
<code python> | <code python> | ||
class decorateur(object): | class decorateur(object): | ||
""" | """ | ||
+ | | ||
+ | adr = {} | ||
+ | | ||
def __init__(self, | def __init__(self, | ||
self.decargs = decargs # arguments par position passés au décorateur | self.decargs = decargs # arguments par position passés au décorateur | ||
self.deckwargs = deckwargs # arguments par défaut passés au décorateur | self.deckwargs = deckwargs # arguments par défaut passés au décorateur | ||
+ | | ||
def __call__(self, | def __call__(self, | ||
@functools.wraps(fonc) | @functools.wraps(fonc) | ||
Ligne 308: | Ligne 329: | ||
# instructions après | # instructions après | ||
return result | return result | ||
+ | self.__class__.adr[fonc.__name__] = self | ||
return appelfonc | return appelfonc | ||
+ | |||
+ | def resultat(self): | ||
+ | pass | ||
</ | </ | ||