[Python] La matrice immortale.

Alberto de prezzo justorius a linuxmail.org
Mar 1 Lug 2014 19:07:38 CEST


Il giorno 01 luglio 2014 18:15, Giovanni Porcari <
giovanni.porcari a softwell.it> ha scritto:

>
> > Il giorno 01/lug/2014, alle ore 15:37, Gabriele Battaglia <
> iz4apu a libero.it> ha scritto:
> >
> > Ciao Giovanni e grazie.
> > 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?
> >
> > if __name__=='__main__':
>
>
>

Parti da un concetto: il filename di un modulo è disponibile nella
variabile global "__name__".
Giusto per capirci, tale "name" è quello che usi per importare un modulo:

>>>import mio_modulo
>>>mio_modulo.__name__
'mio_modulo'

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.

Quando esegui invece il modulo da <STDIN>, prompt oppure come script, lo
fai invece nello spazio di nomi "globale", cioè
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.

Spero di essere stato chiaro.
-------------- parte successiva --------------
Un allegato HTML è stato rimosso...
URL: <http://lists.python.it/pipermail/python/attachments/20140701/6b6c7add/attachment.html>


Maggiori informazioni sulla lista Python