關於下面該句的使用:
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__': 語句內,用於區別是自己調用還是他人調用。
- 導入自己寫的模塊編譯器可能會飄紅報錯,但是不影響正常運行