<div class="gmail_quote">2011/11/29 Matteo Boscolo <span dir="ltr"><<a href="mailto:matteo.boscolo@boscolini.eu">matteo.boscolo@boscolini.eu</a>></span><br><br><br>
> e mi sono accorto che se uso i decoratori con le funzioni questi vengono eseguiti durante<br>> l'esecuzione del modulo.<br><br>Sei tu che chiedi di eseguire la funzione, chiamando fooo() all'inteno del decoratore.<br>
<br>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().<br><br>Il decoratore in se' viene eseguito quando definisci la funzione.<br>
La sintassi equivalente in python pre-decoratori, sarebbe<br><br>> def g():<br>> return f+b<br>> g = ex(g)<br><br>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.<br>
<br></div>