欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

python的主函數(shù) python中主函數(shù)的作用

python main函數(shù)有什么用

print?'main'當腳本作為執(zhí)行腳本時__name__的值為__main__當腳本作為模塊時__name__為模塊文件名。

創(chuàng)新互聯(lián)是一家專注于成都做網(wǎng)站、成都網(wǎng)站設計與策劃設計,江寧網(wǎng)站建設哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設十載,網(wǎng)設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:江寧等地區(qū)。江寧做網(wǎng)站價格咨詢:18982081108

main函數(shù)在程序中大多數(shù)是必須存在的。C語言標準中強制要求main函數(shù)的返回值類型為int,main函數(shù)的返回值是傳遞給操作系統(tǒng),讓操作系統(tǒng)判斷程序的執(zhí)行情況。

一個程序,無論復雜或簡單,總體上都是一個“函數(shù)”;這個函數(shù)就稱為“main 函數(shù)”,也就是“主函數(shù)”。比如有個“做菜”程序,那么“ 做菜 ”這個過程就是“主函數(shù)”。在主函數(shù)中,根據(jù)情況,你可能還需要調(diào)用“買菜,切菜,炒菜”等子函數(shù)。

main函數(shù)在程序中大多數(shù)是必須存在的,但是依然有例外情況,比如windows編程中可以編寫一個動態(tài)鏈接庫模塊,這是其他windows程序可以使用的代碼。由于DLL模塊不是獨立的程序,因此不需要main函數(shù)。

從函數(shù)的形勢看,函數(shù)分兩類:

無參函數(shù)。printstar和print_message就是無參函數(shù)。在調(diào)用無參函數(shù)時,主調(diào)函數(shù)并不將數(shù)據(jù)傳送給被調(diào)用函數(shù),一般用來執(zhí)行指定的一組操作。

有參函數(shù)。在調(diào)用函數(shù)時,在主調(diào)函數(shù)和被調(diào)用函數(shù)之間有數(shù)據(jù)傳遞。也就是說,主調(diào)函數(shù)可以將數(shù)據(jù)傳遞給被調(diào)用函數(shù)使用,被調(diào)用函數(shù)中的數(shù)據(jù)也可以帶回來供主調(diào)函數(shù)使用。

python主函數(shù)怎么寫

一般來說,Python程序員可能是這樣寫main()函數(shù)的:

"""Module docstring.

This serves as a long usage message.

"""import sysimport getoptdef main():

# parse command line options

try:

opts, args = getopt.getopt(sys.argv[1:], "h", ["help"]) except getopt.error, msg: print msg print "for help use --help"

sys.exit(2) # process options

for o, a in opts: if o in ("-h", "--help"): print __doc__

sys.exit(0) # process arguments

for arg in args:

process(arg) # process() is defined elsewhereif __name__ == "__main__":

main()1234567891011121314151617181920212223242526

Guido也承認之前自己寫的main()函數(shù)也是類似的結構,但是這樣寫的靈活性還不夠高,尤其是需要解析復雜的命令行選項時。為此,他向大家提出了幾點建議。

添加可選的 argv 參數(shù)

首先,修改main()函數(shù),使其接受一個可選參數(shù) argv,支持在交互式shell中調(diào)用該函數(shù):

def main(argv=None):

if argv is None:

argv = sys.argv # etc., replacing sys.argv with argv in the getopt() call.1234

這樣做,我們就可以動態(tài)地提供 argv 的值,這比下面這樣寫更加的靈活:

def main(argv=sys.argv):

# etc.12

這是因為在調(diào)用函數(shù)時,sys.argv 的值可能會發(fā)生變化;可選參數(shù)的默認值都是在定義main()函數(shù)時,就已經(jīng)計算好的。

但是現(xiàn)在sys.exit()函數(shù)調(diào)用會產(chǎn)生問題:當main()函數(shù)調(diào)用sys.exit()時,交互式解釋器就會推出!解決辦法是讓main()函數(shù)的返回值指示退出狀態(tài)(exit status)。因此,最后面的那行代碼就變成了這樣:

if __name__ == "__main__":

sys.exit(main())12

并且,main()函數(shù)中的sys.exit(n)調(diào)用全部變成return n。

定義一個Usage()異常

另一個改進之處,就是定義一個Usage()異常,可以在main()函數(shù)最后的except子句捕捉該異常:

import sysimport getoptclass Usage(Exception):

def __init__(self, msg):

self.msg = msgdef main(argv=None):

if argv is None:

argv = sys.argv try: try:

opts, args = getopt.getopt(argv[1:], "h", ["help"]) except getopt.error, msg: raise Usage(msg) # more code, unchanged

except Usage, err: print sys.stderr, err.msg print sys.stderr, "for help use --help"

return 2if __name__ == "__main__":

sys.exit(main())123456789101112131415161718192021222324

這樣main()函數(shù)就只有一個退出點(exit)了,這比之前兩個退出點的做法要好。而且,參數(shù)解析重構起來也更容易:在輔助函數(shù)中引發(fā)Usage的問題不大,但是使用return 2卻要求仔細處理返回值傳遞的問題。

Python中的函數(shù)是什么,什么是主調(diào)函數(shù)和被調(diào)函數(shù),二者之間關系是什么?

主調(diào)函數(shù)是本身固有的數(shù),被調(diào)函數(shù)是通過其他數(shù)計算出來的

主調(diào)函數(shù) 調(diào)用別的函數(shù)實現(xiàn)功能

例如 A是主調(diào)函數(shù) B是被調(diào)函數(shù)

void A()

{

B();

}

調(diào)用下列python的主函數(shù),并獲取到入?yún)⒆兓闹担?/h2>

在其它python文件中調(diào)用這個文件時,就不滿足__name__ == '__main__'這個條件了,所以你找錯地方了。

不通過python文件調(diào)用它,就滿足這個條件。

-----------------------------

一般情況下,我們都是在這個判斷后做測試:

直接運行dbpoll.py將執(zhí)行文檔中的測試

而使用這個文件里的功能,則是常規(guī)的引入:import后實例化相應的類:

python里的__name__屬性,是怎么回事?

python里的__name__屬性的意思:

1、__name__是一個變量。前后加了雙下劃線是因為是因為這是系統(tǒng)定義的名字。普通變量不要使用此方式命名變量。

2、Python有很多模塊,而這些模塊是可以獨立運行的!這點不像C++和C的頭文件。

3、import的時候是要執(zhí)行所import的模塊的。

4、__name__就是標識模塊的名字的一個系統(tǒng)變量。這里分兩種情況:假如當前模塊是主模塊(也就是調(diào)用其他模塊的模塊),那么此模塊名字就是__main__,通過if判斷這樣就可以執(zhí)行“__mian__:”后面的主函數(shù)內(nèi)容;假如此模塊是被import的,則此模塊名字為文件名字(不加后面的.py),通過if判斷這樣就會跳過“__mian__:”后面的內(nèi)容。

通過上面方式,python就可以分清楚哪些是主函數(shù),進入主函數(shù)執(zhí)行;并且可以調(diào)用其他模塊的各個函數(shù)等等。

根據(jù)具體問題類型,進行步驟拆解/原因原理分析/內(nèi)容拓展等。

具體步驟如下:/導致這種情況的原因主要是??

本文標題:python的主函數(shù) python中主函數(shù)的作用
標題來源:http://chinadenli.net/article22/dodcejc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站收錄、搜索引擎優(yōu)化、網(wǎng)站維護、面包屑導航、軟件開發(fā)、關鍵詞優(yōu)化

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司