文章內容皆爲個人理解,如有不足歡迎指正。
相信大家看別人代碼的時候,經常會看見 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__'下面的內容將不被執行,也就是說:你可以寫一些僅在此文件運行時才執行的代碼,防止此段代碼被調用。
歡迎留言討論~