91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python代碼中if?__name__?==?‘__main__‘有什么作用

發布時間:2022-03-17 09:00:31 來源:億速云 閱讀:219 作者:iii 欄目:開發技術

本篇內容介紹了“Python代碼中if __name__ == ‘__main__‘有什么作用”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Python中if __name__ == ‘__main__‘作用

要搞清楚這個問題,要知道以py作為后綴的Python代碼文件,有兩種使用方式,第一種方式是直接運行,另一種方式是作為模塊被別的py文件導入。

當采用第一種方式直接運行自身時,__name__的值為__main__;

當采用第二種方式被別的模塊導入時,其__name__的值為其文件名(通常也稱為模塊名);

舉例實測如下:

用PyCharm新建一個Python工程后,新建兩個py文件,文件名分別為AAA.py和BBB.py

然后在AAA.py中寫上如下代碼:

print('當前AAA.py中__name__的值為:', __name__)

在BBB.py中寫上如下代碼:

import AAA

然后分別運行這兩個Python文件,結果如下:

運行AAA.py的結果如下:

Python代碼中if?__name__?==?‘__main__‘有什么作用

運行BBB.py的結果如下:

Python代碼中if?__name__?==?‘__main__‘有什么作用

這個示例除了應證了上面說的py文件的兩種使用方式,還表明使用import導入py文件/模塊時,這個被導入的py文件中沒有縮進的代碼會被全部執行一遍。

這樣就帶來了一個問題,如果我在導入模塊AAA.py時如果有想代碼不想被執行,那么該怎么做呢?語句“if __name__ == ‘__main__’”就能實現這個作用,具體怎么用,有朋友看了上面的例子應該已經明白了,如果還不明白,請看下面這個例子:

修改上面的AAA.py的代碼為如下代碼:

print('\n')
print('當前AAA.py中__name__的值為“{}”'.format(__name__))
if __name__ == '__main__':
    print('\n')
    print('當前運行的文件是AAA.py')
else:
    print('\n')
print('當前AAA.py是作為模塊被其它py文件導入')

再次分別運行AAA.py和BBB.py,結果分別如下:

Python代碼中if?__name__?==?‘__main__‘有什么作用

Python代碼中if?__name__?==?‘__main__‘有什么作用

可見通過語句“if __name__ == ‘__main__’,就能判斷出一個py文件是直接運行還是作為模塊文件被別的py文件導入的,進而通過這個判斷實現一些代碼的不被執行。

那么通常來說哪些代碼不希望被執行呢?當文件被作者定義為一個模塊時,里面難免含有一些測試代碼,當模塊被import時,這些代碼是不希望被執行的。

補充:if __name__ == '__main__':的運行原理

每個python模塊(python文件,也就是此處的 test.py 和 import_test.py)都包含內置的變量 __name__,當該模塊被直接執行的時候,__name__ 等于文件名(包含后綴 .py );如果該模塊 import 到其他模塊中,則該模塊的 __name__ 等于模塊名稱(不包含后綴.py)。

 “__main__” 始終指當前執行模塊的名稱(包含后綴.py)。進而當模塊被直接執行,__name__ == 'main' 結果為真。

為了進一步說明,我們在 test.py 腳本的 if __name__=="__main__": 之前加入 print(__name__),即將 __name__ 打印出來。文件內容和結果如下:

Python代碼中if?__name__?==?‘__main__‘有什么作用

Python代碼中if?__name__?==?‘__main__‘有什么作用

可以看出,此時變量__name__的值為"__main__"。

再執行 import_test.py,執行結果如下:

Python代碼中if?__name__?==?‘__main__‘有什么作用

Python代碼中if?__name__?==?‘__main__‘有什么作用

此時,test.py中的__name__變量值為 test,不滿足 __name__=="__main__" 的條件,因此,無法執行其后的代碼。

“Python代碼中if __name__ == ‘__main__‘有什么作用”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肃南| 衡山县| 贵港市| 武川县| 交口县| 塔城市| 东安县| 和龙市| 尼勒克县| 广丰县| 临城县| 清丰县| 岳普湖县| 濉溪县| 泸州市| 平利县| 枣强县| 岱山县| 长兴县| 博爱县| 黔江区| 衡山县| 郸城县| 卓资县| 新乐市| 聂荣县| 雷波县| 南丰县| 万荣县| 治多县| 资阳市| 太康县| 柞水县| 龙江县| 苗栗县| 金寨县| 屏东县| 兴城市| 犍为县| 正宁县| 公主岭市|