Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente | Dernière révision Les deux révisions suivantes | ||
decorateurs_modeles [2012/03/26 17:55] tyrtamos |
decorateurs_modeles [2012/03/26 18:04] tyrtamos |
||
---|---|---|---|
Ligne 307: | 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 323: | 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 | ||
</ | </ | ||