2013-08-29 84 views

回答

0

當Python解釋器運行的模塊(源文件)爲主要程序,這臺特殊的__name__變量具有值「__main__」,而不是主要的()。

1

當Python解釋器讀取一個源文件時,它會執行所有在其中找到的代碼 。在執行代碼之前,它將定義幾個特殊變量。例如,如果python解釋器正在運行 該模塊(源文件)作爲主程序,它將設置特殊的 __name__變量的值爲"__main__"。如果此文件正從另一個模塊導入,則__name__將設置爲該模塊的 名稱。

對於您的腳本,我們假設它正在執行主要功能,例如 。你說像

python threading_example.py

在命令行上。設置特殊變量後,將會執行導入語句並加載這些模塊。然後, 評估def塊,創建一個函數對象並創建一個名爲myfunction的變量,該變量指向函數對象。它將 然後讀取if語句並看到__name__確實等於 "__main__",因此它會執行那裏顯示的塊。

這樣做的原因之一是,有時你會寫一個模塊 (一個.py文件),它可以直接執行。或者,它也可以導入並在另一個模塊中使用 。通過執行主要檢查, ,您可以讓該代碼僅在您想將該模塊作爲 程序運行時執行,並且當某人只是想要導入 模塊並自行調用您的函數時不會執行該代碼。

從這裏取:What does if __name__ == "__main__": do?

相關問題