Python 中爲什麼有main函數

Python 中爲什麼有main函數

首先用最簡潔的語言來說明一下 if name == ‘main’: 的作用:防止在被其他文件導入時顯示多餘的程序主體部分。

先舉個例子,如果不用 if name == ‘main’: 會發生什麼事:

首先在yy.py中調用cs.py

yy.py

import cs
print('引用cs')
cs.cs()
print('程序結束!')

cs.py文件如下

cs.py

def cs():
    print('一打開cs!')

print('cs主函數!')

運行結果會是:

cs主函數!
引用cs
一打開cs!
程序結束!

分析:也就是說,如果你的目的只是調用cs.py中的cs()函數,那麼你在導入的時候就不要使用import cs

因爲一旦你使用了import cs

那麼在運行至這一句導入代碼時會自動運行一次cs.py,cs.py中的函數被封裝不會被直接運行,但是cs.py中有沒被封裝的語句:

print(‘cs主函數!’)
因此,這一句就會被多餘地運行,哪怕你完全不需要這一句,你的目的只是調用cs.py中的cs()函數

就算是使用

from cs import cs
運行結果還是一樣。

那麼怎麼才能避免運行不需要的代碼段呢?那就把不需要的代碼段也當成函數運行,但是這個函數有點特殊,他要區分是自身運行還是被調用導入而運行,如果是自身運行那麼就把那些代碼段顯示出來,如果被調用就屏蔽掉。

於是 if name == ‘main’: 便應運而生

我們修改一下代碼

只修改一下cs.py的代碼:

def cs():
    print('已打開cs!')

if __name__ == '__main__':
    print('cs主函數!')

之後運行yy.py

結果如下:

引用cs
已打開cs!
程序結束!

到這一步,大家應該知道 if name == ‘main’: 是幹什麼用的了吧!


作者:南宮第一
來源:CSDN
原文:https://blog.csdn.net/qq_27017791/article/details/80212016
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!

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