Python 中爲什麼有main函數
首先用最簡潔的語言來說明一下 if name == ‘main’: 的作用:防止在被其他文件導入時顯示多餘的程序主體部分。
先舉個例子,如果不用 if name == ‘main’: 會發生什麼事:
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主函數!')
結果如下:
引用cs
已打開cs!
程序結束!
到這一步,大家應該知道 if name == ‘main’: 是幹什麼用的了吧!
作者:南宮第一
來源:CSDN
原文:https://blog.csdn.net/qq_27017791/article/details/80212016
版權聲明:本文爲博主原創文章,轉載請附上博文鏈接!