[Python] Metodi decorati con classi

enrico franchi enrico.franchi a gmail.com
Lun 22 Apr 2013 14:21:50 CEST


2013/4/22 Marco Giusti <marco.giusti a gmail.com>:

> A questo punto mi chiedo l'utilità di avere una classe come decoratore.
> Incapsulazione? Ereditarietà?

Dipende. A volte e' semplicemente piu' leggibile. Specialmente, a mio
avviso quando hai decoratori di questo tipo:

@foo(some args)
def blah(...):
    ...

In questo caso con le funzioni hai due livelli di funzioni nestate,
che puo' essere o meno chiaro.
Con la classe hai nell' __init__ la parte che riguarda i some args,
nel __call__ la parte che processa blah.

Inoltre nei casi in cui vuoi che i decoratori abbiano stato condiviso,
la classe puo' essere un posto ovvio dove metterlo.

A me qualche volta e' capitato di fare queste cose. A volte ho usato
le funzioni comunque, altre volte, riflettendoci, ho trovato il codice
con la classe piu' chiaro.



--
.
..: -enrico-


Maggiori informazioni sulla lista Python