[Python] decoratori ..

Marco Mariani birbag a gmail.com
Mar 29 Nov 2011 22:13:32 CET


2011/11/29 Matteo Boscolo <matteo.boscolo a 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.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20111129/e16b51fc/attachment.html>


Maggiori informazioni sulla lista Python