Python3中if __name__ == '__main__'使用及說明

 關於下面該句的使用:

 


if __name__ == '__main__'

程序入口經常默認爲bin文件,但是在調用其他程序前,需要進行測試。這時候該句就派上用途了。

這裏我們用兩個文件:

bin.py, foo.py


 

bin.py:


import foo

foo.hello1()  # 由於 foo 裏添加了 if 語句 所以bin 調用才執行,不調用不執行。

print(__name__)  # 自己的主程序 自己執行自己時__name__爲 __main__

foo.py


def hello1():
    print('joe')


def hello2():
    print('smith')


print(__name__)  # 這句 在自己程序顯示時打印: __main__ 調用者調用時打印:該文件文件名

# 測試代碼 無需給調用者 顯示 添加此語句 就是 因爲本程序自己運行時 __name__ 爲__main__
if __name__ == '__main__':
    hello2()

 邏輯關係:bin作爲程序入口,可以執行某程序特定函數功能(他人開發的),如果是該程序開發者事先讓你知道的,但是該程序開發者想自己寫一些測試函數,在你調用時不顯示出來,這時候就可以寫在if __name__ == '__main__': 內。這樣就實現了,別人調用與自己調用運行效果不同。


 要點:

  • __name__  這個變量,自己調用自己獲取該值時,爲__main__ ,當然得在主程序中調用。他人調用獲取該值時,爲模塊名。
  • 將測試代碼可以寫在if __name__ == '__main__': 語句內,用於區別是自己調用還是他人調用。
  • 導入自己寫的模塊編譯器可能會飄紅報錯,但是不影響正常運行

 

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