Python main 函式
阿新 • • 發佈:2021-08-24
Python 中main 語句的作用整理:
1、Python 語句中可以不包含主函式 main 函式;
2、if __name__=='__main__' 語句是為了自我除錯程式碼方便,作為執行程式的入口,在 Python 指令碼作為 module 被 import 時該語句下程式碼不執行;
下面編寫兩個測試程式碼:print_test.py、print_test_module.dy,
print_test.py (這裡的 main 部分可以沒有)如下:
1 import datetime 2 print('Hello World') 3 print('Time is',datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')) 4 print('__name__ value: ', __name__) 5 6 def main(): 7 print('This is main function') 8 9 if __name__=='__main__': 10 #main() 11 print('HaHa') 12
print_test_module.py 如下:
1 import print_test 2 print('將test.py作為module匯入執行')
單獨執行 print_test.py 時,結果如下:
1 Hello World 2 Time is 2021-08-24 15:48:54 3 __name__ value: __main__ 4 HaHa
單獨執行 prin_test_module.py 時,結果如下:
1 Hello World 2 Time is 2021-08-24 15:53:48 3 __name__ value: print_test 4 將test.py作為module匯入執行
對比兩段程式執行結果可發現,當直接執行包含 main 函式的程式時,main 函式會被執行,同時程式的__name__變數值為'__main__'。
當包含有 main 函式的程式 print_test.py 被作為 module 被 import 時,print_test_module.py 對應的__name__變數值為該 module 對應的函式名稱 print_test,因此 print_test.py 中的 main 函式不會被執行。
若想在print_test_module.py 中也執行 main 函式,則需要新增語句:print_test.main(),即
1 import print_test 2 print('將test.py作為module匯入執行') 3 print_test.main() 4 5 結果: 6 Hello World 7 Time is 2021-08-24 15:56:59 8 __name__ value: print_test 9 將test.py作為module匯入執行 10 This is main function
可以看到,main 函式就執行了。