新聞中心
Python作為一門較為靈活的解釋型腳本語言,其中定義的main()函數(shù)只有當該Python腳本直接作為執(zhí)行程序時才會執(zhí)行;

成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站建設(shè)、做網(wǎng)站與策劃設(shè)計,西安網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)十載,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:西安等地區(qū)。西安做網(wǎng)站價格咨詢:18982081108
當該python腳本被作為模塊(module)引入(import)時,其中的main()函數(shù)將不會被執(zhí)行。
這是由于兩方面原因:
一方面,main函數(shù)是所有執(zhí)行程序的入口;
另一方面,python的解釋器是順序執(zhí)行腳本的并且不會調(diào)用任何不屬于程序本身的代碼和函數(shù)。
需要補充說明的一點是,如果是被作為一個模塊或庫import到程序中,則會直接成為代碼的一部分。
下面可以通過程序來更好地了解main函數(shù)的作用,這里我們編寫兩段程序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程序,結(jié)果如下
運行print_main_module.py程序(將print_main_function.py作為module引入執(zhí)行),結(jié)果如下
對比兩段程序運行結(jié)果可發(fā)現(xiàn),當直接運行包含main函數(shù)的程序時,main函數(shù)會被執(zhí)行,同時程序的__name__變量值為'__main__'。
當包含有main函數(shù)的程序被作為module被import時,該module程序(print_main_function.py)對應(yīng)的__name__變量值為該module對應(yīng)的函數(shù)名稱,因此該module程序(print_main_function.py)中的main函數(shù)不會被執(zhí)行。
網(wǎng)頁名稱:創(chuàng)新互聯(lián)Python教程:Python中的main函數(shù)解析
本文來源:http://www.5511xx.com/article/dpddies.html


咨詢
建站咨詢
