2013-05-18 5 views
5

natknąłem linii w Pythonie:Python Główną funkcją

def somefunc: 
    [...] 

if __name__ == '__main__': 
    somefunc 

Nie rozumiem co „jeśli __name ...” robi.

Załóżmy, że mamy:

if __name__ == '__main__': main() 

#this code will find main 

Więc to jest podobna do funkcji main() w C/C++, który zostanie wykonany przed jakąkolwiek inną funkcją?

+0

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

Odpowiedz

1

możesz myśleć o tym jako głównym() w C lub BEGIN {} bloku w perlu.

po uruchomieniu kodu przy użyciu Pythona file1.py.

__name__ w file1.py jest równy '__main__', ale w innych plikach importowanych przez plik1.py zmienna to coś innego.

8

Jeśli wykonasz skrypt bezpośrednio, bez importowania, __name__ będzie równy __main__. Ale jeśli importujesz ten plik, __name__ będzie równy nazwie modułu importującego go. Ten warunek zapewnia wykonanie kodu z tego pliku.