關於python中if __name__=='__main__'的含義

在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



發佈了42 篇原創文章 · 獲贊 185 · 訪問量 27萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章