国产一区二区精品-国产一区二区精品久-国产一区二区精品久久-国产一区二区精品久久91-免费毛片播放-免费毛片基地

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機構(gòu)

手機站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時隨地免費學(xué)

千鋒教育

掃一掃進入千鋒手機站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時隨地免費學(xué)習(xí)課程

當(dāng)前位置:首頁  >  技術(shù)干貨  > Python之有妙用的__name__屬性

Python之有妙用的__name__屬性

來源:千鋒教育
發(fā)布人:xqq
時間: 2023-11-07 14:56:46 1699340206

前面說了,py文件分兩種:用于執(zhí)行的程序文件和用于導(dǎo)入的模塊文件。當(dāng)直接使用pythona.py的時候表示a.py是用于執(zhí)行的程序文件,通過import/from方式導(dǎo)入的py文件是模塊文件。

__name__屬性用來區(qū)分py文件是程序文件還是模塊文件:

當(dāng)文件是程序文件的時候,該屬性被設(shè)置為__main__

當(dāng)文件是模塊文件的時候(也就是被導(dǎo)入時),該屬性被設(shè)置為自身模塊名

換句話說,__main__表示的是當(dāng)前執(zhí)行程序文件的默認(rèn)模塊名,想必學(xué)過其他支持包功能的語言的人很容易理解:程序都需要一個入口,入口程序所在的包就是main包,在main包中導(dǎo)入其它包來組織整個程序。python也是如此,只不過它是隱式自動設(shè)置的。

對于python來說,因為隱式自動設(shè)置,該屬性就有了特殊妙用:直接在模塊文件中通過if__name__=="__main__"來判斷,然后寫屬于執(zhí)行程序的代碼,如果直接用python執(zhí)行這個文件,說明這個文件是程序文件,于是會執(zhí)行屬于if代碼塊的代碼,如果是被導(dǎo)入,則是模塊文件,if代碼塊中的代碼不會被執(zhí)行。

顯然,這是python中非常方便的單元測試方式。

例如,寫一個模塊文件,里面包含一個函數(shù),用來求給定序列的最大值和最小值:

defminmax(func,*args):

res=args[0]

forarginargs[1:]:

iffunc(arg,res):

res=arg

returnres

deflessthan(x,y):returnx

defgreatethan(x,y):returnx>y

#測試代碼

if__name__=="__main__":

print(minmax(lessthan,3,6,2,1,4,5))

print(minmax(greatethan,3,6,2,1,4,5))

以上內(nèi)容為大家介紹了Python之有妙用的__name__屬性,希望對大家有所幫助,如果想要了解更多Python相關(guān)知識,請關(guān)注IT培訓(xùn)機構(gòu):千鋒教育。


聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強師集結(jié),手把手帶你蛻變精英
請您保持通訊暢通,專屬學(xué)習(xí)老師24小時內(nèi)將與您1V1溝通
免費領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT