2013-05-18 9 views
5

mi sono imbattuto in una linea in pitone:funzione principale Python

def somefunc: 
    [...] 

if __name__ == '__main__': 
    somefunc 

Non capisco quale sia il "se __name ..." fa.

Supponiamo di avere:

if __name__ == '__main__': main() 

#this code will find main 

Quindi questo è simile alla funzione main() in C/C++, che viene eseguito prima di ogni altra funzione?

+0

http://stackoverflow.com/questions/419163/what-does-if-name-main-do –

risposta

1

si può pensare che questo sia il blocco main() in C o BEGIN {} in perl.

quando si esegue il codice utilizzando python file1.py.

__name__ in file1.py è uguale a '__main__', ma in altri file importati da file1.py, la variabile è un'altra cosa.

8

Se si esegue direttamente lo script, senza importarlo, __name__ sarà uguale a __main__. Ma se si importa questo file, __name__ sarà uguale al nome del modulo che lo importa. Questa condizione assicura che il codice venga eseguito da questo file.