日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

python中 if__name__ == "__main__"的理解

系統(tǒng) 1954 0

有時(shí)候經(jīng)常看到 python 代碼中含有 if __name__ == '__main__' 的代碼 ,但是卻一直不知道是什么意思,可以通過相應(yīng)的代碼去試驗(yàn)即可知道其作用。

一、 理解

? ? ? ?我們知道每個(gè)python文件既可以被直接執(zhí)行,則可以作為腳本導(dǎo)入到其他文件中。從而構(gòu)建各個(gè)模塊的聯(lián)系。而 if__name__ == '__main__' 的作用也是用來區(qū)分是自己作為自己的文件進(jìn)行執(zhí)行的,還是被導(dǎo)入到其他文件當(dāng)做腳本使用。為了更好的區(qū)分,看如下例子:

? ?? 步驟一 :?新建一個(gè)文件為: test.py 的文件,文件內(nèi)容為:

?? python中 if__name__ ==

? ?步驟二 :如果將上述作為一個(gè)自己的腳本,即直接對上述腳本進(jìn)行運(yùn)行,則輸出為如下內(nèi)容:

python中 if__name__ ==

? 結(jié)論1 :由上可知,直接作為腳本運(yùn)行,則其文件內(nèi)的所有內(nèi)容都會被執(zhí)行,包括 if __name == '__main__'前后的所有內(nèi)容。

此時(shí)內(nèi)置的 __name__ 屬性即為 "__main__"? 。即由此可知,當(dāng)運(yùn)行自己這個(gè)文件時(shí),內(nèi)置的屬性__name__ 即為__main__

? ?步驟三: 在上述 test.py 文件的同級目錄下 再新建一個(gè)文件為 import_test.py 的文件,其內(nèi)部的內(nèi)容為:

? ? ? ? ? ? ? ? ?【注:這個(gè)文件把上述的文件進(jìn)行了導(dǎo)入 上述文件名為test.py ,但作為導(dǎo)入模塊時(shí),導(dǎo)入為test 沒有后綴.py】

python中 if__name__ ==

? ?步驟四: 執(zhí)行 import.py 文件,則運(yùn)行結(jié)果為如下:

python中 if__name__ ==

結(jié)論2:由上可知,當(dāng)test.py 作為腳本被導(dǎo)入到import_test.py文件內(nèi)時(shí),test.py文件里?if __name__ == '__main__'外部的內(nèi)容都被執(zhí)行了,而其內(nèi)部的內(nèi)容沒有被執(zhí)行,因?yàn)榻Y(jié)果可知,此時(shí)test.py作為腳本導(dǎo)入到其他文件時(shí)被執(zhí)行時(shí)的__name__已經(jīng)不是原來自己執(zhí)行自己的__main__了,而是變成了它自己的模塊名,即__name__ = 'test' 【沒后綴】,而非__main__了。索引被導(dǎo)入執(zhí)行的代碼的__name__不滿足原來的條件。而import_test.py內(nèi)部的if __name__ = '__main__' 則會被執(zhí)行,因?yàn)樗菆?zhí)行自己的代碼。而非導(dǎo)入到其他文件內(nèi)被執(zhí)行。

總而言之:個(gè)人理解是 一個(gè)py文件自己直接被執(zhí)行時(shí),其內(nèi)部的__name__ == '__main__'? 。而這個(gè)py文件被導(dǎo)入到其他文件時(shí)執(zhí)行時(shí),這個(gè)py文件的__name__ 即不是__main__了,而是變成了這個(gè)py文件的文件名[不包含后綴.py]

?

作用:有了這個(gè)區(qū)別,我們就可以使用 if __name__? == '__main__' 內(nèi)部寫測試代碼,自己運(yùn)行自己這個(gè)才可以檢測的內(nèi)容,但是當(dāng)別人調(diào)用時(shí),這些測試代碼不會被執(zhí)行。用來區(qū)分是自己執(zhí)行還是別人調(diào)用。

以上個(gè)人理解,可能不一定準(zhǔn)確,有問題可指正,謝謝!

?

?

?


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯(lián)系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發(fā)表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 皋兰县| 游戏| 茂名市| 志丹县| 扬州市| 岢岚县| 柏乡县| 饶平县| 曲阜市| 阳谷县| 池州市| 绥中县| 普宁市| 板桥市| 宣城市| 东莞市| 铜川市| 左贡县| 汽车| 康平县| 湘潭县| 芦山县| 海原县| 竹北市| 库尔勒市| 康平县| 萨迦县| 大厂| 安龙县| 灵山县| 资兴市| 上饶市| 闽清县| 隆子县| 通化市| 金川县| 灵璧县| 柞水县| 公主岭市| 紫阳县| 南昌县|