在python中,我們經常看到在源文件的最後通常都會有這樣一個語句:
If __name__ == '__main__':
那麼,它的作用究竟是什麼呢?
比如我們定義了一個python文件爲example.py:
def test():
print 'success'
if __name__ == '__main__':
test()
如果我直接在命令行執行命令:python example.py
那麼出來的結果是:success。這說明變量 __name__ 的值確實是 '__main__'
但是如果我是使用這樣的命令:
import example
example.__name__
出來的結果是:'example',如下圖:
當python解析器讀取example.py這個文件的內容時,它會執行這個文件裏面的代碼。在執行之前,python解析器會定義一些特殊的變量。在上面的例子中,對於第一種做法,python解析器會將變量 __name__ 的值變爲’__main__’ 。所以也就能夠調用到test函數。對於第二種做法,python解析器會將變量__name__ 的值變爲’example’,也就是文件名。
這樣做的目的是,有時候你寫了一個模塊(文件),你調試的時候可以直接運行這個文件,當它被導入(import)其他模塊時,調試的信息就不會被調用到。
參考鏈接:
https://stackoverflow.com/questions/419163/what-does-if-name-main-do
http://ibiblio.org/g2swap/byteofpython/read/module-name.html