1. 程式人生 > 其它 >python中main函式的用法

python中main函式的用法

什麼場景下會有main函式?

當該python指令碼被作為模組(module)引入(import)時,其中的main()函式將不會被執行。

main函式的作用?

__ name__ == '__ main__'是Python的main函式入口。並非說,加入這句才能使用python xxx.py來執行,而是說,這裡可以判斷,當前是否是直接被python直接呼叫執行。

main為什麼只有檔案當作執行程式的時候才會被執行呢?

這是由於兩方面原因,一方面,main函式是所有執行程式的入口;另一方面,python的直譯器是順序執行指令碼的並且不會呼叫任何不屬於程式本身的程式碼和函式,需要補充說明的一點是,如果是被作為一個模組或庫import到程式中,則會直接成為程式碼的一部分。

參考程式碼:

檔案:main_function.py

import datetime

print('Hello World!')
print('Time is ', datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S %A'))


def main():
    print('this message is from main function')


if __name__ == '__main__':
    main()

執行結果:

➜  main git:(master) ✗ py main_function.py
Hello World!
Time is  2019-07-22 09:50:50 Monday
this message is from main function

檔案二:test_main.py

import main_function

print("Done!")

執行結果:

➜  main git:(master) ✗ py test_main.py
Hello World!
Time is  2019-07-22 09:52:00 Monday
Done!

什麼場景下會有main函式?

當該python指令碼被作為模組(module)引入(import)時,其中的main()函式將不會被執行。

main函式的作用?

__ name__ == '__ main__'是Python的main函式入口。並非說,加入這句才能使用python xxx.py來執行,而是說,這裡可以判斷,當前是否是直接被python直接呼叫執行。

main為什麼只有檔案當作執行程式的時候才會被執行呢?

這是由於兩方面原因,一方面,main函式是所有執行程式的入口;另一方面,python的直譯器是順序執行指令碼的並且不會呼叫任何不屬於程式本身的程式碼和函式,需要補充說明的一點是,如果是被作為一個模組或庫import到程式中,則會直接成為程式碼的一部分。

參考程式碼:

檔案:main_function.py

import datetime

print('Hello World!')
print('Time is ', datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S %A'))


def main():
    print('this message is from main function')


if __name__ == '__main__':
    main()

執行結果:

➜  main git:(master) ✗ py main_function.py
Hello World!
Time is  2019-07-22 09:50:50 Monday
this message is from main function

檔案二:test_main.py

import main_function

print("Done!")

執行結果:

➜  main git:(master) ✗ py test_main.py
Hello World!
Time is  2019-07-22 09:52:00 Monday
Done!
  標籤: python