真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

python主函數(shù)結(jié)束 Python程序里一定要有一個(gè)主函數(shù)

請(qǐng)教Python如何終止主程序

return break 都可以終止函數(shù)的運(yùn)行

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、成都小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了鲅魚(yú)圈免費(fèi)建站歡迎大家使用!

exit(0) # 無(wú)錯(cuò)誤退出

exit(1) # 有錯(cuò)誤退出

這兩條語(yǔ)句一般都會(huì)加在程序的最后 因?yàn)閑xit是迫使系統(tǒng)去終止程序的運(yùn)行!

Python的函數(shù)等沒(méi)有結(jié)束符嗎?

歡迎你來(lái)到站長(zhǎng)在線的站長(zhǎng)學(xué)堂學(xué)習(xí)Python知識(shí),本文學(xué)習(xí)的是《在Python中函數(shù)的定義與創(chuàng)建詳解》。本文的主要內(nèi)容有:函數(shù)的定義、函數(shù)的定義規(guī)則、函數(shù)的創(chuàng)建。

我們?cè)谥袑W(xué)的時(shí)候,在數(shù)學(xué)課中學(xué)過(guò)函數(shù),函數(shù)是數(shù)學(xué)最重要的一個(gè)模塊。在Python中,函數(shù)的應(yīng)用非常廣泛。在前面我們已經(jīng)多次接觸過(guò)函數(shù)。例如,用于輸出的print()函數(shù),用于輸入的input()函數(shù),以及用于生成一系列整數(shù)的range()函數(shù)。但這些都是Python內(nèi)置的標(biāo)準(zhǔn)函數(shù),可以直接使用。除了可以直接使用的標(biāo)準(zhǔn)函數(shù)外,Python還支持自定義函數(shù)。即通過(guò)將一段有規(guī)律的、重復(fù)的代碼定義為函數(shù),來(lái)達(dá)到一次編寫(xiě)、多次調(diào)用的目的。使用函數(shù)可以提高代碼的重復(fù)利用率。

那什么是函數(shù)呢?

1、函數(shù)的定義

如果在開(kāi)發(fā)程序時(shí),需要某塊代碼多次,但是為了提高編寫(xiě)的效率以及代碼的重用,所以把具有獨(dú)立功能的代碼塊組織為一個(gè)小模塊,這就是函數(shù)。

函數(shù)是組織好的,可重復(fù)使用的,用來(lái)實(shí)現(xiàn)單一,或相關(guān)聯(lián)功能的代碼段。函數(shù)的輸入可稱為參數(shù),輸出可稱為返回值。

2、函數(shù)的定義規(guī)則

2.1、函數(shù)代碼塊要以 def 關(guān)鍵詞開(kāi)頭,后接函數(shù)標(biāo)識(shí)符名稱與括號(hào)(),同時(shí)不要忘記冒號(hào)':'的使用

2.2、不主動(dòng)調(diào)用函數(shù)時(shí),函數(shù)不會(huì)被使用

2.3、圓括號(hào)之間可以用于定義參數(shù),任何入?yún)?shù)和自變量必須放在圓括號(hào)中間。

2.4、函數(shù)的第一行語(yǔ)句可以選擇性地使用文檔字符串—用于存放函數(shù)說(shuō)明。

2.5、函數(shù)內(nèi)容以冒號(hào)起始,并且縮進(jìn)。

2.6、return [表達(dá)式] 結(jié)束函數(shù),選擇性地返回一個(gè)值給調(diào)用方。不帶表達(dá)式的return相當(dāng)于返回 None。

3、函數(shù)的創(chuàng)建

創(chuàng)建函數(shù)也稱為定義函數(shù),可以理解為創(chuàng)建一個(gè)具有某種用途的工具。使用def關(guān)鍵字實(shí)現(xiàn),具體的語(yǔ)法格式如下:

def functionname([parameterlist]): ['''comments'''] [functionbody]

參數(shù)說(shuō)明如下:

functionname:函數(shù)名稱,在調(diào)用函數(shù)時(shí)使用。

parameterlist:可選參數(shù),用于指定向函數(shù)中傳遞的參數(shù)。如果有多個(gè)參數(shù),各參數(shù)間使用逗號(hào)“,”分隔。如果不指定,則表示該函數(shù)沒(méi)有參數(shù)。在調(diào)用時(shí),也不指定參數(shù)。

'''comments''':可選參數(shù),表示為函數(shù)指定注釋,注釋的內(nèi)容通常是說(shuō)明該函數(shù)的功能、要傳遞的參數(shù)的作用等,可以為用戶提供友好提示和幫助的內(nèi)容。

functionbody:可選參數(shù),用于指定函數(shù)體,即該函數(shù)被調(diào)用后,要執(zhí)行的功能代碼。如果函數(shù)有返回值,可以使用return語(yǔ)句返回。

站長(zhǎng)在線提醒你:

1、函數(shù)體“functionbody”和注釋“'''comments'''”相對(duì)于def關(guān)鍵字必須保持一定的縮進(jìn)。

2、如果想定義一個(gè)什么也不做的空函數(shù),可以使用pass語(yǔ)句作為占位符。

例如,定義一個(gè)過(guò)濾危險(xiǎn)字符的函數(shù)filterchar(),代碼如下:

運(yùn)行上面的代碼,將不顯示任何內(nèi)容,也不會(huì)拋出異常,因?yàn)閒ilterchar()函數(shù)還沒(méi)有調(diào)用。

在下一個(gè)知識(shí)點(diǎn),站長(zhǎng)在線就來(lái)講解《在Python中函數(shù)的調(diào)用》。關(guān)注站長(zhǎng)在線,學(xué)習(xí)Python不迷路!歡迎你對(duì)站長(zhǎng)在線進(jìn)行關(guān)注,評(píng)論,點(diǎn)贊,分享、轉(zhuǎn)發(fā)!

python TKinter的主窗口運(yùn)行程序完畢后,怎么讓其自動(dòng)關(guān)閉

采用的是main函數(shù)對(duì)主窗口運(yùn)行程序完畢自動(dòng)關(guān)閉的命令:

from tkinter import *def main():

root = Tk()

b = Button(root, text='退出', command=root.quit)

b.pack()

mainloop()if __name__ == '__main__':

main()

擴(kuò)展資料:

main函數(shù)的應(yīng)用:

程序執(zhí)行的起點(diǎn),main是相對(duì)來(lái)說(shuō)的,如同音學(xué)理論之主調(diào)于泛音,泛音即程序中的除main之外的其他函數(shù),迎合思考方式而生成的而非必定的模式。有主有次,執(zhí)行起來(lái)?xiàng)l清縷析,既可將程序模塊化又實(shí)現(xiàn)了一個(gè)閉合的整體。

模塊化程序設(shè)計(jì)方法是把整個(gè)程序劃分為若干功能較為單一的程序模塊,然后分別予以實(shí)現(xiàn),最后再把所有的程序模塊像搭積木一樣裝配起來(lái)。

利用函數(shù)可以實(shí)現(xiàn)程序的模塊化,可以大大地減輕編碼工作量。在函數(shù)內(nèi)部或復(fù)合語(yǔ)句塊內(nèi)部定義的 auto 類型變量稱為局部變量。

局部變量的作用域從該局部變量定義的位置開(kāi)始到本函數(shù)或復(fù)合語(yǔ)句結(jié)束處。局部變量的生存期較短暫。當(dāng)局部變量所在的函數(shù)被調(diào)用時(shí),局部變量?jī)?nèi)存空間被分配,函數(shù)調(diào)用結(jié)束后,局部變量?jī)?nèi)存空間被釋放。

函數(shù)的形參和實(shí)參均屬于局部變量,調(diào)用函數(shù)時(shí),形參內(nèi)存空間被分配。函數(shù)調(diào)用結(jié)束后,形參內(nèi)存空間被釋放。C語(yǔ)言函數(shù)參數(shù)傳遞可分為三種情況:簡(jiǎn)單變量作為函數(shù)參數(shù)、數(shù)組名作為函數(shù)參數(shù)以及指針作為函數(shù)參數(shù)。

參考資料來(lái)源:百度百科-main函數(shù)

關(guān)于python 命令控制程序啟動(dòng)與結(jié)束?

可以使用一個(gè)標(biāo)志變量來(lái)控制程序的啟動(dòng)和結(jié)束。

首先,在主程序中設(shè)置一個(gè)標(biāo)志變量,例如 running,用于指示程序是否處于運(yùn)行狀態(tài)。在程序開(kāi)始時(shí),running 應(yīng)設(shè)置為 False。

然后,在每次循環(huán)中檢查 running 的值。如果 running 為 True,則執(zhí)行 auto() 函數(shù);如果 running 為 False,則等待用戶輸入命令。

當(dāng)用戶輸入 qd 命令時(shí),將 running 設(shè)置為 True,并執(zhí)行 auto() 函數(shù)。當(dāng)用戶輸入 tz 命令時(shí),將 running 設(shè)置為 False,并執(zhí)行 reset() 函數(shù)。

示例代碼如下:

running

running = False

while True:

cmd = input("請(qǐng)輸入命令:")

if cmd == 'qd':

running = True

elif cmd == 'tz':

running = False

if running:

auto()

else:

reset()

在這段代碼中,我們使用了一個(gè) while 循環(huán)來(lái)不斷接收用戶的命令。在每次循環(huán)中,我們會(huì)讀入用戶的命令,并根據(jù)命令的不同設(shè)置 running 的值。如果 running 為 True,則執(zhí)行 auto() 函數(shù);如果 running 為 False,則執(zhí)行 reset() 函數(shù)。

這樣,用戶就可以隨時(shí)輸入 tz 命令來(lái)停止程序,也可以輸入 qd 命令來(lái)重新啟動(dòng)程序。

希望這些信息能夠幫助您。

在Python中定義Main函數(shù)

目錄

許多編程語(yǔ)言都有一個(gè)特殊的函數(shù),當(dāng)操作系統(tǒng)開(kāi)始運(yùn)行程序時(shí)會(huì)自動(dòng)執(zhí)行該函數(shù)。這個(gè)函數(shù)通常被命名為main(),并且依據(jù)語(yǔ)言標(biāo)準(zhǔn)具有特定的返回類型和參數(shù)。另一方面,Python解釋器從文件頂部開(kāi)始執(zhí)行腳本,并且沒(méi)有自動(dòng)執(zhí)行的特殊函數(shù)。

盡管如此,為程序的執(zhí)行定義一個(gè)起始點(diǎn)有助于理解程序是如何運(yùn)行的。Python程序員提出了幾種方式對(duì)此進(jìn)行實(shí)現(xiàn)。

本文結(jié)束時(shí),您將了解以下內(nèi)容:

Python中的基本main()函數(shù)

一些Python腳本中,包含一個(gè)函數(shù)定義和一個(gè)條件語(yǔ)句,如下所示:

此代碼中,包含一個(gè)main()函數(shù),在程序執(zhí)行時(shí)打印Hello World!。此外,還包含一個(gè)條件(或if)語(yǔ)句,用于檢查_(kāi)_name__的值并將其與字符串"__main__"進(jìn)行比較。當(dāng)if語(yǔ)句為True時(shí),Python解釋器將執(zhí)行main()函數(shù)。更多關(guān)于Python條件語(yǔ)句的信息可以由此獲得。

這種代碼模式在Python文件中非常常見(jiàn),它將作為腳本執(zhí)行并導(dǎo)入另一個(gè)模塊。為了幫助理解這段代碼的執(zhí)行方式,首先需要了解Python解釋器如何根據(jù)代碼的執(zhí)行方式設(shè)置__name__。

Python中的執(zhí)行模式

Python解釋器執(zhí)行代碼有兩種方式:

更多內(nèi)容可參考如何運(yùn)行Python腳本。無(wú)論采用哪種方式,Python都會(huì)定義一個(gè)名為_(kāi)_name__的特殊變量,該變量包含一個(gè)字符串,其值取決于代碼的使用方式。

本文將如下示例文件保存為execution_methods.py,以 探索 代碼如何根據(jù)上下文改變行為:

在此文件中,定義了三個(gè)對(duì)print()函數(shù)的調(diào)用。前兩個(gè)打印一些介紹性短語(yǔ)。第三個(gè)print()會(huì)先打印短語(yǔ)The value __name__ is,之后將使用Python內(nèi)置的repr()函數(shù)打印出__name__變量。

在Python中,repr()函數(shù)將對(duì)象轉(zhuǎn)化為供解釋器讀取的形式。上述示例通過(guò)使用repr()函數(shù)來(lái)強(qiáng)調(diào)__name__的值為字符串。更多關(guān)于repr()的內(nèi)容可參考Python文檔。

在本文中,您將隨處可見(jiàn)文件(file),模塊(module)和腳本(script)這三個(gè)字眼。實(shí)際上,三者之間并無(wú)太大的差別。不過(guò),在強(qiáng)調(diào)代碼目的時(shí),還是存在細(xì)微的差異:

“如何運(yùn)行Python腳本”一文也討論了三者的差別。

基于命令行執(zhí)行

在這類方法中,Python腳本將通過(guò)命令行來(lái)執(zhí)行。

執(zhí)行腳本時(shí),無(wú)法與Python解釋器正在執(zhí)行的代碼交互。關(guān)于如何通過(guò)命令行執(zhí)行代碼的詳細(xì)信息對(duì)本文而言并不重要,但您可以通過(guò)展開(kāi)下框閱讀更多有關(guān)Windows,Linux和macOS之間命令行差異的內(nèi)容。

命令行環(huán)境

不同的操作系統(tǒng)在使用命令行執(zhí)行代碼時(shí)存在細(xì)微的差異。

在Linux和macOS中,通常使用如下命令:

美元符號(hào)($)之前的內(nèi)容可能有所不同,具體取決于您的用戶名和計(jì)算機(jī)名稱。您鍵入的命令位于$之后。在Linux或macOS上,Python3的可執(zhí)行文件名為python3,因此可以通過(guò)輸入python3 script_name.py來(lái)運(yùn)行python腳本。

在Windows上,命令提示符通常如下所示:

根據(jù)您的用戶名,之前的內(nèi)容可能會(huì)有所不同,您輸入的命令位于之后。在Windows上,Python3的可執(zhí)行文件通常為python。因此可以通過(guò)輸入python script_name.py來(lái)運(yùn)行python腳本。

無(wú)論哪種操作系統(tǒng),本文的Python腳本的輸出結(jié)果都是相同的。因此本文以Linux和macOS為例。

使用命令行執(zhí)行execution_methods.py,如下所示:

在這個(gè)示例中,__name__具有值'__main__',其中引號(hào)(')表明該值為字符串類型。

請(qǐng)記住,在Python中,使用單引號(hào)(')和雙引號(hào)(")定義的字符串沒(méi)有區(qū)別。更多關(guān)于字符串的內(nèi)容請(qǐng)參考Python的基本數(shù)據(jù)類型。

如果在腳本中包含"shebang行"并直接執(zhí)行它(./execution_methods.py),或者使用IPython或Jupyter Notebook的%run,將會(huì)獲取相同的結(jié)果。

您還可以通過(guò)向命令行添加-m參數(shù)的方法實(shí)現(xiàn)以模塊的方式執(zhí)行。通常情況下,推薦如下方式pip: python3 -m pip install package_name。

添加-m參數(shù)將會(huì)運(yùn)行包中__main__.py的代碼。更多關(guān)于__main__.py文件的內(nèi)容可參考如何將開(kāi)源Python包發(fā)布到PyPI中。

在三種情況中,__name__都具有相同的值:字符串'__main__'。

技術(shù)細(xì)節(jié):Python文檔中具體定義了__name__何時(shí)取值為'__main__'。

當(dāng)通過(guò)標(biāo)準(zhǔn)輸入,腳本或者交互提示中讀取數(shù)據(jù)時(shí),模塊的__name__將取值為'__main__'。(來(lái)源)

__name__與__doc__,__package__和其他屬性一起存儲(chǔ)在模塊的全局命名空間。更多關(guān)于屬性的信息可參考Python數(shù)據(jù)模型文檔,特別是關(guān)于模塊和包的信息,請(qǐng)參閱Python Import文檔。

導(dǎo)入模塊或解釋器

接下來(lái)是Python解釋器執(zhí)行代碼的第二種方式:導(dǎo)入。在開(kāi)發(fā)模塊或腳本時(shí),可以使用import關(guān)鍵字導(dǎo)入他人已經(jīng)構(gòu)建的模塊。

在導(dǎo)入過(guò)程中,Python執(zhí)行指定模塊中定義的語(yǔ)句(但僅在第一次導(dǎo)入模塊時(shí))。要演示導(dǎo)入execution_methods.py文件的結(jié)果,需要啟動(dòng)Python解釋器,然后導(dǎo)入execution_methods.py文件:

在此代碼輸出中,Python解釋器執(zhí)行了三次print()函數(shù)調(diào)用。前兩行由于沒(méi)有變量,在輸出方面與在命令行上作為腳本執(zhí)行時(shí)完全相同。但是第三個(gè)輸出存在差異。

當(dāng)Python解釋器導(dǎo)入代碼時(shí),__name__的值與要導(dǎo)入的模塊的名稱相同。您可以通過(guò)第三行的輸出了解這一點(diǎn)。__name__的值為'execution_methods',是Python導(dǎo)入的.py文件。

注意如果您在沒(méi)有退出Python時(shí)再次導(dǎo)入模塊,將不會(huì)有輸出。

注意:更多關(guān)于導(dǎo)入在Python中如何工作的內(nèi)容請(qǐng)參考官方文檔和Python中的絕對(duì)和相對(duì)導(dǎo)入。

Main函數(shù)的最佳實(shí)踐

既然您已經(jīng)了解兩種執(zhí)行方式上的差異,那么掌握一些最佳實(shí)踐方案還是很有用的。它們將適用于編寫(xiě)作為腳本運(yùn)行的代碼或者在另一個(gè)模塊導(dǎo)入的代碼。

如下是四種實(shí)踐方式:

將大部分代碼放入函數(shù)或類中

請(qǐng)記住,Python解釋器在導(dǎo)入模塊時(shí)會(huì)執(zhí)行模塊中的所有代碼。有時(shí)如果想要實(shí)現(xiàn)用戶可控的代碼,會(huì)導(dǎo)致一些副作用,例如:

在這種情況下,想要實(shí)現(xiàn)用戶控制觸發(fā)此代碼的執(zhí)行,而不是讓Python解釋器在導(dǎo)入模塊時(shí)執(zhí)行代碼。

因此,最佳方法是將大部分代碼包含在函數(shù)或類中。這是因?yàn)楫?dāng)Python解釋器遇到def或class關(guān)鍵字時(shí),它只存儲(chǔ)這些定義供以后使用,并且在用戶通知之前不會(huì)實(shí)際執(zhí)行。

將如下代碼保存在best_practices.py以證明這個(gè)想法:

在此代碼中,首先從time模塊中導(dǎo)入sleep()。

在這個(gè)示例中,參數(shù)以秒的形式傳入sleep()函數(shù)中,解釋器將暫停一段時(shí)間再運(yùn)行。隨后,使用print()函數(shù)打印關(guān)于代碼描述的語(yǔ)句。

之后,定義一個(gè)process_data()函數(shù),執(zhí)行如下五項(xiàng)操作:

在命令行中執(zhí)行

當(dāng)你將此文件作為腳本用命令行執(zhí)行時(shí)會(huì)發(fā)生什么呢?

Python解釋器將執(zhí)行函數(shù)定義之外的from time import sleep和print(),之后將創(chuàng)建函數(shù)process_data()。然后,腳本將退出而不做任何進(jìn)一步的操作,因?yàn)槟_本沒(méi)有任何執(zhí)行process_data()的代碼。

如下是這段腳本的執(zhí)行結(jié)果:

我們?cè)谶@里看到的輸出是第一個(gè)print()的結(jié)果。注意,從time導(dǎo)入和定義process_data()函數(shù)不產(chǎn)生結(jié)果。具體來(lái)說(shuō),調(diào)用定義在process_data()內(nèi)部的print()不會(huì)打印結(jié)果。

導(dǎo)入模塊或解釋器執(zhí)行

在會(huì)話(或其他模塊)中導(dǎo)入此文件時(shí),Python解釋器將執(zhí)行相同的步驟。

Python解釋器導(dǎo)入文件后,您可以使用已導(dǎo)入模塊中定義的任何變量,類或函數(shù)。為了證明這一點(diǎn),我們將使用可交互的Python解釋器。啟動(dòng)解釋器,然后鍵入import best_practices:

導(dǎo)入best_practices.py后唯一的輸出來(lái)自process_data()函數(shù)外定義的print()。導(dǎo)入模塊或解釋器執(zhí)行與基于命令行執(zhí)行類似。

使用__name__控制代碼的執(zhí)行

如何實(shí)現(xiàn)基于命令行而不使用Python解釋器導(dǎo)入文件來(lái)執(zhí)行呢?

您可以使用__name__來(lái)決定執(zhí)行上下文,并且當(dāng)__name__等于"__main__"時(shí)才執(zhí)行process_data()。在best_practices.py文件中添加如下代碼:

這段代碼添加了一個(gè)條件語(yǔ)句來(lái)檢驗(yàn)__name__的值。當(dāng)值為"__main__"時(shí),條件為True。記住當(dāng)__name__變量的特殊值為"__main__"時(shí)意味著Python解釋器會(huì)執(zhí)行腳本而不是將其導(dǎo)入。

條件語(yǔ)塊內(nèi)添加了四行代碼(第12,13,14和15行):

現(xiàn)在,在命令行中運(yùn)行best_practices.py,并觀察輸出的變化:

首先,輸出顯示了process_data()函數(shù)外的print()的調(diào)用結(jié)果。

之后,data的值被打印。因?yàn)楫?dāng)Python解釋器將文件作為腳本執(zhí)行時(shí),變量__name__具有值"__main__",因此條件語(yǔ)句被計(jì)算為True。

接下來(lái),腳本將調(diào)用process_data()并傳入data進(jìn)行修改。當(dāng)process_data執(zhí)行時(shí),將輸出一些狀態(tài)信息。最終,將輸出modified_data的值。

現(xiàn)在您可以驗(yàn)證從解釋器(或其他模塊)導(dǎo)入best_practices.py后發(fā)生的事情了。如下示例演示了這種情況:

注意,當(dāng)前結(jié)果與將條件語(yǔ)句添加到文件末尾之前相同。因?yàn)榇藭r(shí)__name__變量的值為"best_practices",因此條件語(yǔ)句結(jié)果為False,Python將不執(zhí)行process_data()。

創(chuàng)建名為main()的函數(shù)來(lái)包含要運(yùn)行的代碼

現(xiàn)在,您可以編寫(xiě)作為腳本由從命令行執(zhí)行并導(dǎo)入且沒(méi)有副作用的Python代碼。接下來(lái),您將學(xué)習(xí)如何編寫(xiě)代碼并使其他程序員能輕松地理解其含義。

許多語(yǔ)言,如C,C++,Java以及其他的一些語(yǔ)言,都會(huì)定義一個(gè)叫做main()的函數(shù),當(dāng)編譯程序時(shí),操作系統(tǒng)會(huì)自動(dòng)調(diào)用該函數(shù)。此函數(shù)通常被稱為入口點(diǎn)(entry point),因?yàn)樗浅绦蜻M(jìn)入執(zhí)行的起始位置。

相比之下,Python沒(méi)有一個(gè)特殊的函數(shù)作為腳本的入口點(diǎn)。實(shí)際上在Python中可以將入口點(diǎn)定義成任何名稱。

盡管Python不要求將函數(shù)命名為main(),但是最佳的做法是將入口點(diǎn)函數(shù)命名為main()。這樣方便其他程序員定位程序的起點(diǎn)。

此外,main()函數(shù)應(yīng)該包含Python解釋器執(zhí)行文件時(shí)要運(yùn)行的任何代碼。這比將代碼放入條件語(yǔ)塊中更好,因?yàn)橛脩艨梢栽趯?dǎo)入模塊時(shí)重復(fù)使用main()函數(shù)。

修改best_practices.py文件如下所示:

在這個(gè)示例中,定義了一個(gè)main()函數(shù),它包含了上面的條件語(yǔ)句塊。之后修改條件語(yǔ)塊執(zhí)行main()。如果您將此代碼作為腳本運(yùn)行或?qū)?,將獲得與上一節(jié)相同的輸出。

在main()中調(diào)用其他函數(shù)

另一種常見(jiàn)的實(shí)現(xiàn)方式是在main()中調(diào)用其他函數(shù),而不是直接將代碼寫(xiě)入main()。這樣做的好處在于可以實(shí)現(xiàn)將幾個(gè)獨(dú)立運(yùn)行的子任務(wù)整合。

例如,某個(gè)腳本有如下功能:

如果在單獨(dú)的函數(shù)中各自實(shí)現(xiàn)這些子任務(wù),您(或其他用戶)可以很容易地實(shí)現(xiàn)代碼重用。之后您可以在main()函數(shù)中創(chuàng)建默認(rèn)的工作流。

您可以根據(jù)自己的情況選擇是否使用此方案。將任務(wù)拆分為多個(gè)函數(shù)會(huì)使重用更容易,但會(huì)增加他人理解代碼的難度。

修改best_practices.py文件如下所示:

在此示例代碼中,文件的前10行具有與之前相同的內(nèi)容。第12行的第二個(gè)函數(shù)創(chuàng)建并返回一些示例數(shù)據(jù),第17行的第三個(gè)函數(shù)模擬將修改后的數(shù)據(jù)寫(xiě)入數(shù)據(jù)庫(kù)。

第21行定義了main()函數(shù)。在此示例中,對(duì)main()做出修改,它將調(diào)用數(shù)據(jù)讀取,數(shù)據(jù)處理以及數(shù)據(jù)寫(xiě)入等功能。

首先,從read_data_from_web()中創(chuàng)建data。將data作為參數(shù)傳入process_data(),之后將返回modified_data。最后,將modified_data傳入write_data_to_database()。

腳本的最后兩行是條件語(yǔ)塊用于驗(yàn)證__name__,并且如果if語(yǔ)句為True,則執(zhí)行main()。

在命令行中運(yùn)行如下所示:

根據(jù)執(zhí)行結(jié)果,Python解釋器在執(zhí)行main()函數(shù)時(shí),將依次執(zhí)行read_data_from_web(),process_data()以及write_data_to_database()。當(dāng)然,您也可以導(dǎo)入best_practices.py文件并重用process_data()作為不同的數(shù)據(jù)輸入源,如下所示:

在此示例中,導(dǎo)入了best_practices并且將其簡(jiǎn)寫(xiě)為bp。

導(dǎo)入過(guò)程會(huì)導(dǎo)致Python解釋器執(zhí)行best_practices.py的全部代碼,因此輸出顯示解釋文件用途的信息。

然后,從文件中存儲(chǔ)數(shù)據(jù)而不是從Web中讀取數(shù)據(jù)。之后,可以重用best_practices.py文件中的process_data()和write_data_to_database()函數(shù)。在此情況下,可以利用代碼重寫(xiě)來(lái)取代在main()函數(shù)中實(shí)現(xiàn)全部的代碼邏輯。

實(shí)踐總結(jié)

以下是Python中main()函數(shù)的四個(gè)關(guān)鍵最佳實(shí)踐:

結(jié)論

恭喜!您現(xiàn)在已經(jīng)了解如何創(chuàng)建Python main()函數(shù)了。

本文介紹了如下內(nèi)容:

現(xiàn)在,您可以開(kāi)始編寫(xiě)一些非常棒的關(guān)于Python main()函數(shù)代碼啦!

python中return函數(shù)的用法

在 Python 中,“return”函數(shù)的用法如下:

1、return 語(yǔ)句用于退出函數(shù),終止函數(shù)并將 return 值傳回。實(shí)例:

def?a(x,y):

if?x==y:

return?x,y

2、用于同一循環(huán)語(yǔ)句下,遇到第一個(gè) return 后即返回。實(shí)例:

```python

def?fun(a,b):

print?(a)

return?a

print?(b)

return?b

resunlt?=?fun(2,6)

2

```

3、用于 return 在不帶參數(shù)的情況下(或者沒(méi)有寫(xiě) return 語(yǔ)句),默認(rèn)返回 None。實(shí)例:

def?recurve(a,b):

if?a%b==0:

return?b

else:

gcd(b,a%b)

以上內(nèi)容參考:百度百科-Python


本文標(biāo)題:python主函數(shù)結(jié)束 Python程序里一定要有一個(gè)主函數(shù)
分享網(wǎng)址:http://weahome.cn/article/hjsddc.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部