<div dir="ltr">Il giorno 01 luglio 2014 18:15, Giovanni Porcari <span dir="ltr"><<a href="mailto:giovanni.porcari@softwell.it" target="_blank">giovanni.porcari@softwell.it</a>></span> ha scritto:<br><div class="gmail_extra">

<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
> Il giorno 01/lug/2014, alle ore 15:37, Gabriele Battaglia <<a href="mailto:iz4apu@libero.it" target="_blank">iz4apu@libero.it</a>> ha scritto:<br>
<div>><br>
> Ciao Giovanni e grazie.<br>
> Visto che in questi giorni, data la mia presenza, questa lista è diventata un asilo per programmatori... Dove l'infante sono io, chiaramente, mi spiegheresti il significato di questa riga?<br>
><br>
> if __name__=='__main__':<br>
<br><br></div></blockquote><div> <br><br></div><div>Parti da un concetto: il filename di un modulo è disponibile nella variabile global "__name__".<br></div><div>Giusto per capirci, tale "name" è quello che usi per importare un modulo:<br>

</div><div><br>>>>import mio_modulo<br></div><div>>>>mio_modulo.__name__<br></div><div>'mio_modulo'<br><br></div><div>Nota che il modulo è eseguito nel *suo* namespace. Considera il namespace come semplicemente uno "spazio" in cui due moduli possono avere lo stesso metodo fai_qualcosa(), senza che ci sia confusione tra i due.<br>

<br></div><div>Quando esegui invece il modulo da <STDIN>, prompt oppure come script, lo fai invece nello spazio di nomi "globale", cioè <br>appunto nello spazio "main". All'atto pratico, la riga di codice in questione (if  __name__ == '__main__') controlla proprio questo aspetto, cioè lo spazio in cui "vive" il codice, ed evita che sia eseguito nel caso in cui tale modulo è solamente importato.<br>

<br></div><div>Spero di essere stato chiaro.<br><br> </div></div></div></div>