日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python中def main是什么意思_关于python:为什么使用def main()?

發(fā)布時(shí)間:2024/7/19 python 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python中def main是什么意思_关于python:为什么使用def main()? 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本問(wèn)題已經(jīng)有最佳答案,請(qǐng)猛點(diǎn)這里訪問(wèn)。

Possible Duplicate:

What does if __name__=="__main__" do?

我看過(guò)一些代碼示例和教程

1

2

3

4

5def main():

# my code here

if __name__ =="__main__":

main()

但是為什么呢?有沒(méi)有什么理由不在文件的頂部定義函數(shù),然后在下面寫(xiě)代碼?工業(yè)工程

1

2

3

4

5

6

7

8

9def my_function()

# my code here

def my_function_two()

# my code here

# some code

# call function

# print(something)

我只是想知道主旋律有沒(méi)有押韻?

請(qǐng)參閱stackoverflow.com/questions/419163/what-do-if-name-main-do

stackoverflow.com/questions/419163/what-do-if-name-main-do無(wú)法回答整個(gè)問(wèn)題。

所謂的副本并沒(méi)有回答:擁有一個(gè)main()函數(shù)(而不是僅僅將所有代碼寫(xiě)入"if name"塊)是有用的,因?yàn)樗梢员苊庖馔獾貏?chuàng)建可能影響其他函數(shù)的全局變量。

以及其他答案,有一個(gè)執(zhí)行代碼的入口點(diǎn)可以使用setup.py中的入口點(diǎn)自動(dòng)生成可執(zhí)行腳本,這些腳本包裝導(dǎo)入和執(zhí)行步驟。當(dāng)你希望你的用戶(hù)能夠?qū)憇etup-my-app ...而不是python2.7 /opaque/path/to/module.py ...時(shí),這是很好的。

如果沒(méi)有主sentinel,即使腳本作為模塊導(dǎo)入,也會(huì)執(zhí)行代碼。

同樣值得注意的是,擁有一個(gè)main()函數(shù)可以使用:import module; module.main()運(yùn)行該代碼。如果代碼只是在if塊中,則無(wú)法從其他地方運(yùn)行。

其他人都已經(jīng)回答過(guò)了,但我想我還有別的事要補(bǔ)充。

調(diào)用main()的if語(yǔ)句(無(wú)特殊順序)的原因:

其他語(yǔ)言(如C語(yǔ)言和Java語(yǔ)言)有一個(gè)EDOCX1×7函數(shù),它在執(zhí)行程序時(shí)被調(diào)用。使用這個(gè)if,我們可以使python的行為像它們一樣,這讓許多人覺(jué)得更熟悉。

代碼將更干凈、更容易閱讀和更具組織性。(是的,我知道這是主觀的)

對(duì)于import來(lái)說(shuō),將python代碼作為一個(gè)模塊是可能的,不會(huì)產(chǎn)生不良的副作用。

這意味著可以對(duì)該代碼運(yùn)行測(cè)試。

這意味著我們可以將該代碼導(dǎo)入到交互式Python shell中,并測(cè)試/調(diào)試/運(yùn)行它。

def main中的變量是局部變量,而它之外的變量是全局變量。這可能會(huì)引入一些錯(cuò)誤和意外行為。

但是,不需要編寫(xiě)main()函數(shù)并在if語(yǔ)句中調(diào)用它。

我自己通常開(kāi)始寫(xiě)一些沒(méi)有任何功能的廢棄腳本。如果腳本變得足夠大,或者如果我覺(jué)得將所有代碼放在函數(shù)中對(duì)我有利,那么我重構(gòu)代碼并執(zhí)行它。當(dāng)我編寫(xiě)bash腳本時(shí),也會(huì)發(fā)生這種情況。

即使您將代碼放在主函數(shù)中,也不需要完全按此方式編寫(xiě)代碼。一個(gè)簡(jiǎn)單的變化可能是:

1

2

3

4

5

6

7

8import sys

def main(argv):

# My code here

pass

if __name__ =="__main__":

main(sys.argv)

這意味著您可以從傳遞自定義參數(shù)的其他腳本(或交互shell)調(diào)用main()。這可能在單元測(cè)試或批處理時(shí)很有用。但請(qǐng)記住,上面的代碼將需要解析argv,因此最好使用傳遞已解析參數(shù)的不同調(diào)用。

在我編寫(xiě)的面向?qū)ο髴?yīng)用程序中,代碼如下所示:

1

2

3

4

5

6class MyApplication(something):

# My code here

if __name__ =="__main__":

app = MyApplication()

app.run()

因此,請(qǐng)隨意編寫(xiě)更適合您的代碼。:)

使用sys.argv作為參數(shù)調(diào)用main的一個(gè)好處是,這種方法與argparse模塊(imo是處理命令行參數(shù)的正確方法)很好地工作。你所需要做的就是在main中把a(bǔ)rgv傳給parse_args。

如果foo.py的內(nèi)容

1

2

3print __name__

if __name__ == '__main__':

print 'XXXX'

文件foo.py可以通過(guò)兩種方式使用。

imported in another file : import foo

在這種情況下,__name__為foo,代碼段不執(zhí)行,不打印XXXX。

executed directly : python foo.py

直接執(zhí)行時(shí),__name__與__main__相同,執(zhí)行該段代碼并打印XXXX。

使用此功能在同一模塊中編寫(xiě)各種單元測(cè)試的一種。

"if __name__=="__main__":是做什么的?"已經(jīng)回答。

如果您使用import模塊,那么擁有main()功能允許您調(diào)用它的功能。這個(gè)(imho)的主要(沒(méi)有雙關(guān)語(yǔ))好處是您可以對(duì)它進(jìn)行單元測(cè)試。

兩個(gè)答案相同的問(wèn)題不會(huì)重復(fù)。

@布巴卡佐巴:我同意。我沒(méi)有將這個(gè)問(wèn)題標(biāo)記為副本。這個(gè)問(wèn)題的一部分有一個(gè)很好的答案,我認(rèn)為復(fù)制答案毫無(wú)意義。我回答了剩下的問(wèn)題。

考慮第二個(gè)腳本。如果您將其導(dǎo)入到另一個(gè)目錄中,那么將執(zhí)行"全局級(jí)"的指令。

總結(jié)

以上是生活随笔為你收集整理的python中def main是什么意思_关于python:为什么使用def main()?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 亚洲精品v天堂中文字幕 | 自拍视频在线观看 | 免费在线观看一区二区三区 | 麻豆porn| 色婷婷激情av | 国产人妻精品午夜福利免费 | 欧美破处大片 | 成年人香蕉视频 | 欧美一及片 | 亚洲欧美国产一区二区 | 亚洲电影中文字幕 | 欧美久久久久久 | 日韩av中文在线 | 毛片毛片毛片毛片毛片毛片 | 久久精品国产99精品国产亚洲性色 | 精品第一页 | 国产二级一片内射视频播放 | 欧美福利精品 | 久久亚洲精华国产精华液 | 日韩欧美视频在线播放 | 四虎免费在线观看 | 在线国产欧美 | 日韩在线一区二区 | 男女猛烈无遮挡 | 国产精品日韩电影 | 水蜜桃亚洲精品 | 日韩精品一区二区三区av | 欧美日韩一区二区不卡 | 久久综合五月天 | 日日综合 | 欧美与黑人午夜性猛交久久久 | 一级绝黄| 欧美精品一级片 | 天天干天天看 | 五月婷婷久久综合 | 国产一区二区三区毛片 | 亚洲第一黄色网 | 久久精品欧美一区二区 | 88av在线播放 | 日韩久久久久久久 | 日皮视频网站 | av狠狠| 日韩性在线| 亚洲精品国偷拍自产在线观看蜜桃 | 在线免费观看高清视频 | 五月天婷婷色综合 | 午夜在线免费观看视频 | 亚洲人一区二区三区 | 开心激情五月婷婷 | 国产三级在线免费观看 | 日韩久久久久久久久久久 | 国产中文网 | 久草影视网 | 国产男女猛烈无遮挡免费视频动漫 | 日韩不卡的av | 免费www xxx | 91极品身材尤物theporn | 超清av在线 | 亚洲乱色| 美女被变态侵犯 | 99在线免费视频 | 国产午夜无码视频在线观看 | 丝袜诱惑av | 中文天堂在线播放 | 少妇人妻偷人精品视频蜜桃 | 97视频在线免费观看 | 欧美在线观看一区二区三区 | 国产熟女精品视频 | 麻豆极品 | 少妇又紧又色又爽又刺激视频 | 伊人综合影院 | 人妻巨大乳hd免费看 | 日本公妇乱偷中文字幕 | 精品人妻一区二区三区日产 | 日韩免费在线观看视频 | 欧美a在线视频 | 日韩中文av在线 | 国产成人精品免高潮费视频 | 性色av免费观看 | 久久久久99精品成人片直播 | 精品中文字幕一区二区三区 | 天堂网在线看 | 哺乳期av | 日本不卡网站 | 青青青手机视频在线观看 | 三级精品在线观看 | 麻豆久久久午夜一区二区 | 丰满人妻一区二区三区四区 | 精品区一区二区 | 一区二区三区蜜桃 | aa在线视频 | 国产视频不卡一区 | 亚洲av成人无码一区二区三区在线观看 | 雪花飘电影在线观看免费高清 | 另类男人与善交video | 看黄色的网站 | 99久精品 | 国产15页 | 中文字幕第九页 |