2013-05-18 5 views
5

私はpythonでラインに出くわした:私は「__name場合...」何をするか理解していないPythonの主な機能

def somefunc: 
    [...] 

if __name__ == '__main__': 
    somefunc 

我々が持っていると仮定します。

if __name__ == '__main__': main() 

#this code will find main 

だから、これは他の関数の前に実行されますC/C++でのmain()関数に似ているのですか?

+0

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

答えて

1

これはCのmain()やperlのBEGIN {}ブロックと考えることができます。

python file1.pyを使用してコードを実行すると、

__name__ in file1.pyは'__main__'と等しくなりますが、file1.pyによってインポートされた他のファイルでは、変数は別のものです。

8

スクリプトを直接インポートしないで実行すると、__name____main__になります。しかし、このファイルをインポートすると、__name__はそれをインポートするモジュールの名前と同じになります。 この条件では、このファイルからコードを実行します。