if __name__='__main__'的作用

文章內容皆爲個人理解,如有不足歡迎指正。

相信大家看別人代碼的時候,經常會看見 if __name__=’__main__'這行代碼(name和main的兩邊都是雙下劃線),它到底是個什麼意思呢以及有什麼作用呢?

1、什麼意思?
先舉個例子,加入你是李華,你有個朋友叫張三,在張三眼裏,你的__name__=‘LiHua’,而在你自己眼中,你的__name__=‘自己’。

同理,在python裏,現在有兩個.py文件,一個叫a.py,另一個爲b.py。在b.py眼裏,a的__name__=‘a’,但是在a自己眼裏,__name__=’__main__’。
我們具體的來看,a.py 的代碼、運行結果 如下:

#a.py

print('hello')
print(__name__)
if __name__=='__main__':
    print('hello world')

'''運行結果
hello
__main__
hello world
'''

b.py 的代碼、運行結果 如下:

#b.py

import a
print('你好,世界')
print(__name__)

'''運行結果
hello
a
你好,世界
__main__
'''

不難看出來,直接運行a.py,__name__=’__main__'是成立的,因爲print('hello world ‘)成功運行了;但是在b.py調用a.py的時候,a.py裏的__name__=’__main__'並不成立了,因爲這時候是以b的角度去看a.py,其__name__=‘a’。

也就是說,每個.py文件都有其__name__,自己運行的時候__name__=’__main__’,被調用的時候,__name__爲文件名。

2、什麼作用?
不難理解,在被調用的時候,if __name__=’__main__'下面的內容將不被執行,也就是說:你可以寫一些僅在此文件運行時才執行的代碼,防止此段代碼被調用。

歡迎留言討論~

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章