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('將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 將print_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('將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 將print_test.py作為module導入執行
10 This is main function

可以看到,main 函數就執行了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM