在很多開發語言中,都有一個叫做mian的主函數,這個函數一般都是程序的入口,當程序啟動時,首先執行這個函數。
比如C#語言中的main函數長這個樣子。
static void Main(string[] args)
{
Console.WriteLine("Hello World!");
}
在Python中,有時候可以看到這樣的代碼if __name__=="__main__":,看起來是不是有點像其他語言中的主函數,到底這段代碼是什麼意思呢?
有句話經典的概括了這段代碼的意義。
“Make a script both importable and executable”
大緻的意思就是你寫的模塊既可以導入到别的模塊中用,也可以在模塊本身執行使用。
我們編寫一個簡單的函數,并對這些函數做調用。通過下段代碼演示這一過程,源代碼見code\6\func_main.py。
def show():
print("這是一個簡單的函數")
print("無論如何,我都會輸出")
print("__name__變量為:" __name__)
if __name__=="__main__":
print("我要開始測試了")
show()
代碼執行結果如下。
無論如何,我都會輸出
__name__變量為:__main__
我要開始測試了
這是一個簡單的函數
直接運行上述文件,則__name__的值是'__main__',從而if __name__ == '__main__'語句執行。
我們再編寫一個程序,并對這些函數做調用。通過下段代碼演示這一過程,源代碼見code\6\func_main_test.py。
import func_main
func_main.show()
代碼執行結果如下。
無論如何,我都會輸出
__name__變量為:func_main
這是一個簡單的函數
其中定義的main()函數隻有當Python腳本直接作為執行程序時才會執行,當Python腳本被作為模塊(module)引入(import)時,其中的main()函數将不會被執行。
這是由于當你以單個文件運行時,__name__便是__main__,當你以模塊導入使用時,這個屬性便是這個模塊的文件名。
函數__main__的一個用處就是調試代碼的時候,在if __name__ == '__main__'中加入一些我們的調試代碼,我們可以讓外部模塊調用的時候不執行我們的調試代碼,但是如果我們想排查問題的時候,直接執行該模塊文件,調試代碼能夠正常運行。
,更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!