<div class="gmail_quote">Il giorno 13 novembre 2010 12:19, Marco Giusti <span dir="ltr">&lt;<a href="mailto:marco.giusti@gmail.com">marco.giusti@gmail.com</a>&gt;</span> ha scritto:<br><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
<div class="im">On Sat, Nov 13, 2010 at 11:45:37AM +0100, lex mlist wrote:<br>
&gt; Giorno,<br>
&gt;<br>
&gt; torno alla carica con un&#39;altro problema (e chiedo scusa se vi stresso).<br>
<br>
</div>no problem<br></blockquote><div><br>=)) grazie mille per la risposta.<br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;"><div class="im">

[...]<br>
</div>
                                global configuration # &lt;&lt;&lt; here the trick<br>
 [...]<br>
``configuration`` fa parte dello scope globale, quando dentro la<br>
funzione setup tu fai l&#39;assegnamento<br>
<br>
        configuration = yaml.load(open(self.filename))<br>
<br>
tu leghi (bind) il nome configuration allo scope locale. quando da<br>
dentro la funzione cerchi il nome ``configuration``, lui lo trova nello<br>
scope locale e ritorna quello, ovvero i parametri di configurazione, ma<br>
dal modulo ``error`` tu ottieni la variabile che è associata allo scope<br>
globale.<br></blockquote><div><br>Accipicchia che comportamento &quot;strano&quot; :s<br>Non posso che chiedermi il perchè di un tale comportamento, si verifica solo all&#39;interno delle classi o in presenza di qualunque scope non globale? (funzioni ed altro, se esiste)<br>
<br>Comunque grazie mille per l&#39;aiuto, avevo davvero provato di tutto, anche ad usare una classe al posto del dict ma il risultato finale è sempre stato lo stesso.<br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">

un piccolo extra che puoi ignorare se credi.</blockquote><div>Nono, anzi tutt&#39;altro, ogni informazione in più è utilissima :)) e ti ringrazio in anticipo<br> <br></div><blockquote class="gmail_quote" style="margin: 0pt 0pt 0pt 0.8ex; border-left: 1px solid rgb(204, 204, 204); padding-left: 1ex;">
python mette a disposizione<br>
una variabile globale, ``__debug__``, che è sempre vera a meno di<br>
eseguire l&#39;interprete python con le opzioni di ottimizzazione, -O. in<br>
quel caso crea dei file con bytecode ottimizzato .pyo, invece dei<br>
classici .pyc, inoltre è interessante come viene ottimizzato il codice:<br>
<br>
        import dis<br>
<br>
        def error(msg):<br>
                if __debug__:<br>
                        print msg<br>
<br>
        error(&#39;exception...&#39;)<br>
        dis.dis(error)<br>
<br>
prova a lanciare questo codice prima normalmente e poi con l&#39;opzione -O.<br></blockquote><div><br>Wow! Sinceramente ci speravo in una variabile tipo quella, anche se non ci contavo troppo, a questo punto potrei usufruire della variabile __debug__, visto che ottimizza anche il bytecode finale. Ho provato a ripetere l&#39;esempio con una variabile booleana &quot;debug&quot; e in nessun caso il codice viene ottimizzato.<br>
Mi sembra un ottimo compromesso aggiungere una semplice opzione -O per ottenere un insieme di benefici.<br>L&#39;opzione è da ripetere ad ogni esecuzione o basta la prima volta lasciando poi i .pyo? (a me comunque non ha salvato alcun .pyo, magari lo farà quando lo chiamano altri moduli)<br>
<br>Grazie ancora!<br></div></div>