Python 中If __name__==’__main__’解讀

Python代碼中,我們經常會看到如下的代碼段:

def main ():
    pass
if __name__=='__main__':
    main()

if __name__=='__main__'究竟是什麼意思,下面結合代碼實例,對其進行解讀.首先看test.py程序:

test.py

print(__name__)
'''
def main ():
    pass
if __name__=='__main__':
    main()
'''

Test.py的執行結果如下所示:

 

打印出__name__,得到的結果是__main__.這說明,Python在執行代碼的時候設置了一些特殊變量,顯然name就是這樣的特殊變量之一,當Python直接運行一個Python代碼的時候,將name特殊變量置爲main.

再編寫一個test_1.py文件,在這個文件中只有一行import 代碼,調用test.py

import test

 在test_1.py中調用test.py,執行的結果爲:

當Python通過調用的但是執行一個Python文件的時候,被調用的Python文件中的name被置爲文件本來的名字,在我的程序中就是test.

因此if __name__=='__main__',用來判斷這個Python文件是否被直接執行,如果是直接執行則運行if下的代碼,如果是調用執行,則運行else之後的代碼.通過下面的兩個文件說明.

first_model.py

print("永遠都會被執行的一行print代碼")
def main() :
    print("這個程序被直接執行")
   pass
if __name__=='__main__':
    main()
else:
    print("這個程序被調用執行")

直接執行first_model.py的結果爲:

 second_model.py 在second_model.py中調用first_model

import first_model as fm
fm.main()

 執行結果爲:

 

 

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