1. 程式人生 > 其它 >Python main 函式

Python main 函式

Python 中main 語句的作用整理:

1、Python 語句中可以不包含主函式 main 函式;

2、if __name__=='__main__' 語句是為了自我除錯程式碼方便,作為執行程式的入口,在 Python 指令碼作為 module 被 import 時該語句下程式碼不執行;

下面編寫兩個測試程式碼:print_test.pyprint_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 函式就執行了。