Python 中 if __name__ == '__main__': 的理解
1、這段代碼的功能
一個 Python 的文件有兩種使用的方法,第一是直接作為腳本執行,第二是 import 到其他的 Python 腳本中被調用(模塊重用)執行。因此 if __name__ == '__main__': 的作用就是控制這兩種情況執行代碼的過程,在 if __name__ == '__main__': 下的代碼只有在第一種情況下(即文件作為腳本直接執行)才會被執行,而 import 到其他腳本中是不會被執行的。
舉個例子,下面在 test.py 中寫入如下代碼:
print "I'm the first." if __name__=='__main__':print "I'm the second."直接執行 test.py 后結果如下,可以成功打印兩行字符串。即 if __name__=='__main__': 語句之前和之后的代碼都被執行:
I'm the first. I'm the second.然后在同一文件夾新建名稱為 import_test.py 的腳本,只輸入以下代碼:
import test執行 import_test.py 腳本,只輸出了第一行字符串。即if __name__=='__main__': 之前的語句被執行,之后的沒有被執行:
I'm the first.2、運行的原理
每個Python模塊(Python文件,也就是此處的 test.py 和 import_test.py)都包含內置的變量 __name__,當運行模塊被執行的時候,__name__ 等于文件名(包含了后綴.py);如果 import 到其他模塊中,則 __name__ 等于模塊名稱(不包含后綴.py)。而 '__main__' 等于當前執行文件的名稱(包含了后綴.py)。進而當模塊被直接執行時,__name__ == 'main' 結果為真。
同樣舉例說明,我們在 test.py 腳本的if __name__=='__main__':之前加入print __name__,即將__name__打印出來:
print "I'm the first." print __name__ if __name__=='__main__':print "I'm the second."運行結果如下:
I'm the first. __main__ I'm the second.可以看出,此時變量__name__的值為 __main__;
再執行 import_test.py,模塊內容和執行結果如下:
此時,test.py 中的 __name__ 變量值為 test,不滿足 __name__=="__main__" 的條件,因此,無法執行其后的代碼。
總結
以上是生活随笔為你收集整理的Python 中 if __name__ == '__main__': 的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 计算机维修案例分析题,14-15年春季高
- 下一篇: 支持任亏券!《异度之刃3》公布全新预告: