[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