python if name main 的作用_Python中if __name__ == '__main__':的作用和原理
if __name__ == '__main__':的作用
一個(gè)python文件通常有兩種使用方法,第一是作為腳本直接執(zhí)行,第二是 import 到其他的 python 腳本中被調(diào)用(模塊重用)執(zhí)行。因此 if __name__ == 'main': 的作用就是控制這兩種情況執(zhí)行代碼的過(guò)程,在 if __name__ == 'main': 下的代碼只有在第一種情況下(即文件作為腳本直接執(zhí)行)才會(huì)被執(zhí)行,而 import 到其他腳本中是不會(huì)被執(zhí)行的。舉例說(shuō)明如下:
直接執(zhí)行
直接執(zhí)行 test.py,結(jié)果如下圖,可以成功 print 兩行字符串。即,if __name__=="__main__": 語(yǔ)句之前和之后的代碼都被執(zhí)行。
import 執(zhí)行
然后在同一文件夾新建名稱(chēng)為 import_test.py 的腳本,輸入如下代碼:
執(zhí)行 import_test.py 腳本,輸出結(jié)果如下:
只輸出了第一行字符串。即,if __name__=="__main__": 之前的語(yǔ)句被執(zhí)行,之后的沒(méi)有被執(zhí)行。
if __name__ == '__main__':的運(yùn)行原理
每個(gè)python模塊(python文件,也就是此處的 test.py 和 import_test.py)都包含內(nèi)置的變量 __name__,當(dāng)該模塊被直接執(zhí)行的時(shí)候,__name__ 等于文件名(包含后綴 .py );如果該模塊 import 到其他模塊中,則該模塊的 __name__ 等于模塊名稱(chēng)(不包含后綴.py)。
而 “__main__” 始終指當(dāng)前執(zhí)行模塊的名稱(chēng)(包含后綴.py)。進(jìn)而當(dāng)模塊被直接執(zhí)行時(shí),__name__ == 'main' 結(jié)果為真。
為了進(jìn)一步說(shuō)明,我們?cè)?test.py 腳本的 if __name__=="__main__": 之前加入 print(__name__),即將 __name__ 打印出來(lái)。文件內(nèi)容和結(jié)果如下:
可以看出,此時(shí)變量__name__的值為"__main__"。
再執(zhí)行 import_test.py,執(zhí)行結(jié)果如下:
此時(shí),test.py中的__name__變量值為 test,不滿足 __name__=="__main__" 的條件,因此,無(wú)法執(zhí)行其后的代碼。
總結(jié)
以上是生活随笔為你收集整理的python if name main 的作用_Python中if __name__ == '__main__':的作用和原理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Web框架——Flask系列之模板使用练
- 下一篇: bp神经网络预测_股指期货价格变动趋势往