2011/11/29 Matteo Boscolo <matteo.bosc...@boscolini.eu>

> e mi sono accorto che se uso i decoratori con le funzioni questi vengono
eseguiti durante
>  l'esecuzione del modulo.

Sei tu che chiedi di eseguire la funzione, chiamando fooo() all'inteno del
decoratore.

Il decoratore riceve una funzione come parametro, ovvero fooo=g e fooo=f.
Procede poi a chiamare fooo(), quindi ottieni l'effetto di chiamare g() ed
f().

Il decoratore in se' viene eseguito quando definisci la funzione.
La sintassi equivalente in python pre-decoratori, sarebbe

> def g():
>    return f+b
> g = ex(g)

Se vuoi rimandare l'esecuzione di g(), devi ritornare dal decoratore una
funzione che agisce da 'wrapper' su g, generalmente una closure o un
oggetto callable.
_______________________________________________
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python

Rispondere a