python if __name == "__main__"的詳解

前言

對於python來說,我們經常會見到一行代碼:

if __name__ == "__main__":
    balabala

那這句話是啥意思呢?

 

正文

首先要明白__name__是python當中的一個屬性,代表現在主模塊的引用。

如果調用的是本模塊(python文件相當於模塊),那麼默認的name就是_main__了。如果不是的話,name就會設置爲引用模塊的名稱。

例如我有兩個py文件,cal.py和hello.py,其中hello.py會引用cal.py。

#cal.py
def return_max(num1, num2):
    if num1 >= num2:
        return num1
    else:
        return num2
    

num = return_max(3,5)
print(num)
print(__name__) #顯示爲__main__
#hello.py
import cal

print(cal.__name__) #顯示爲cal

按照上面的說法,這時如果我們運行hello.py, 跑出來的就不是hello.py的內容而是cal.py內容了。

而如果我加了這行判斷,就不會出現這個問題。

if __name__ == "__main__":

 

後記

這個概念對於python是非常重要的,主要是爲了防止引用混亂的問題。

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