天天看點

Python __name__ == '__main__'的作用

在Python中,經常能看到下面這句話:

if __name__ == '__main__':      

那麼這句話的作用是什麼呢?首先上結論:

1、當.py檔案自己運作時,main下面的代碼執行

2、當.py檔案被其他檔案引用時,main下面的代碼不執行

為了驗證上面的結論,來看一個小例子:

建立一個first.py檔案,在檔案中鍵入以下代碼:

# first.py

def hello_world():
    print('hello world')

print(__name__) #輸出__main__

if __name__ == '__main__':
    print('this is main')
    hello_world()      

然後,運作first.py檔案,首先執行print語句,然後進入if語句,執行hello_world(),結果如下。可以看到,單獨執行一個.py時,main下面的語句被執行。

Python __name__ == '__main__'的作用

接下來建立一個second.py,second.py的主要作用是引入first.py。second.py中的代碼如下:

# second.py

import first

first.hello_world()      

結果如下圖,first.py被作為module引入到second.py中,是以print(name)的輸出為first,這剛好是first.py檔案的名字。然後由于name的值與‘main ’不相同,是以if内的代碼不執行。最後執行first.hello_world(),輸出”hello_world”

Python __name__ == '__main__'的作用