Python中的main函式解析
Python作為一門較為靈活的解釋型指令碼語言,其中定義的main()函式只有當該Python指令碼直接作為執行程式時才會執行;
當該python指令碼被作為模組(module)引入(import)時,其中的main()函式將不會被執行。
這是由於兩方面原因:
一方面,main函式是所有執行程式的入口;
另一方面,python的直譯器是順序執行指令碼的並且不會呼叫任何不屬於程式本身的程式碼和函式。
需要補充說明的一點是,如果是被作為一個模組或庫import到程式中,則會直接成為程式碼的一部分。
下面可以透過程式來更好地瞭解main函式的作用,這裡我們編寫兩段程式print_main_function.py和print_main_module.py
print_main_function.py
# import os # import time import datetime print('Hello World!') print('Time is ', datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S %A')) print('__name__ value: ', __name__) def main(): print('this message is from main function') if __name__ == '__main__': main() # print(__name__)
print_main_module.py
import print_main_function
print("Done!")
單獨執行print_main_function.py程式,結果如下
執行print_main_module.py程式(將print_main_function.py作為module引入執行),結果如下
對比兩段程式執行結果可發現,當直接執行包含main函式的程式時,main函式會被執行,同時程式的__name__變數值為'__main__'。
當包含有main函式的程式被作為module被import時,該module程式(print_main_function.py)對應的__name__變數值為該module對應的函式名稱,因此該module程式(print_main_function.py)中的main函式不會被執行。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4422/viewspace-2833564/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- main函式的入口函式AI函式
- python中if __name__ == '__main__': 的解析PythonAI
- Swift中main函式去哪了?SwiftAI函式
- Java——main函式JavaAI函式
- Python中if __name__ == '__main__'作用解析PythonAI
- 標頭檔案包含方式,main函式的引數解析AI函式
- C#中Main函式後引數的處理C#AI函式
- [譯] 解析 Go 中的函式呼叫Go函式
- main函式返回值的處理AI函式
- 如何寫好 C main 函式AI函式
- main函式你到底知道多少AI函式
- 匯入jar包,main函式JARAI函式
- C程式起點main函式C程式AI函式
- main函式解析(一)——Linux-0.11 學習筆記(五)AI函式Linux筆記
- main 函式解析(二)—— Linux-0.11 學習筆記(六)AI函式Linux筆記
- python(python中的super函式、)Python函式
- python中id()函式、zip()函式、map()函式、lamda函式Python函式
- Python hasattr() 函式 // python中hasattr()、getattr()、setattr()函式的使用Python函式
- 解析python生成器函式的呼叫Python函式
- python基礎--函式全解析Python函式
- C++ 逆向之 main 函式的查詢C++AI函式
- 『無為則無心』Python函式 — 25、Python中的函式Python函式
- 理解Python中的Lambda函式Python函式
- python中zip()函式的用法Python函式
- python中的閉包函式Python函式
- python中的“__init__”函式Python函式
- Python中的匿名函式-lambdaPython函式
- Python中的函式詳解Python函式
- python中的回撥函式Python函式
- python利用or在列表解析中呼叫多個函式.pyPython函式
- 演算法金 | Python 中有沒有所謂的 main 函式?為什麼?演算法PythonAI函式
- linux中,C程式第一個執行的並不是main()函式LinuxC程式AI函式
- Linux 中的 fork() 函式例項解析Linux函式
- Python中的split()函式的用法Python函式
- Python 偏函式用法全方位解析Python函式
- [ASM C/C++] C語言的main 函式ASMC++C語言AI函式
- PHP中preg_replace函式解析PHP函式
- windows命令列下如何呼叫main函式Windows命令列AI函式