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

python中 if__name__ == "__main__"的理解

系統 1879 0

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

一、 理解

? ? ? ?我們知道每個python文件既可以被直接執行,則可以作為腳本導入到其他文件中。從而構建各個模塊的聯系。而 if__name__ == '__main__' 的作用也是用來區分是自己作為自己的文件進行執行的,還是被導入到其他文件當做腳本使用。為了更好的區分,看如下例子:

? ?? 步驟一 :?新建一個文件為: test.py 的文件,文件內容為:

?? python中 if__name__ ==

? ?步驟二 :如果將上述作為一個自己的腳本,即直接對上述腳本進行運行,則輸出為如下內容:

python中 if__name__ ==

? 結論1 :由上可知,直接作為腳本運行,則其文件內的所有內容都會被執行,包括 if __name == '__main__'前后的所有內容。

此時內置的 __name__ 屬性即為 "__main__"? 。即由此可知,當運行自己這個文件時,內置的屬性__name__ 即為__main__

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

? ? ? ? ? ? ? ? ?【注:這個文件把上述的文件進行了導入 上述文件名為test.py ,但作為導入模塊時,導入為test 沒有后綴.py】

python中 if__name__ ==

? ?步驟四: 執行 import.py 文件,則運行結果為如下:

python中 if__name__ ==

結論2:由上可知,當test.py 作為腳本被導入到import_test.py文件內時,test.py文件里?if __name__ == '__main__'外部的內容都被執行了,而其內部的內容沒有被執行,因為結果可知,此時test.py作為腳本導入到其他文件時被執行時的__name__已經不是原來自己執行自己的__main__了,而是變成了它自己的模塊名,即__name__ = 'test' 【沒后綴】,而非__main__了。索引被導入執行的代碼的__name__不滿足原來的條件。而import_test.py內部的if __name__ = '__main__' 則會被執行,因為它是執行自己的代碼。而非導入到其他文件內被執行。

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

?

作用:有了這個區別,我們就可以使用 if __name__? == '__main__' 內部寫測試代碼,自己運行自己這個才可以檢測的內容,但是當別人調用時,這些測試代碼不會被執行。用來區分是自己執行還是別人調用。

以上個人理解,可能不一定準確,有問題可指正,謝謝!

?

?

?


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

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

【本文對您有幫助就好】

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

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 分宜县| 家居| 麦盖提县| 札达县| 莒南县| 方城县| 嫩江县| 青冈县| 东丰县| 玉田县| 张家川| 乳源| 玉溪市| 湘乡市| 塘沽区| 聂拉木县| 鄂温| 崇仁县| 石林| 顺昌县| 克拉玛依市| 电白县| SHOW| 新蔡县| 正宁县| 锡林浩特市| 清镇市| 清河县| 吐鲁番市| 白朗县| 定陶县| 修文县| 济南市| 灌阳县| 得荣县| 罗田县| 武穴市| 广宗县| 灵宝市| 商都县| 柯坪县|