初學 Python 看別人程式碼的時候,
以為 if __name__ == '__main__': 這串敘述等同C語言 int main() 裡面的區塊。
但後來才認識到,這串 if __name__ == '__main__': 效果及用法卻截然不同。
尤其是 python 就算有這句敘述,仍然是由上而下一行行執行,
而C語言則是先執行int main()區塊。
用python寫好的一個.py檔案,只會發生以下兩種情況:
1. 自己本身執行
2. 被別的檔案執行 (被其他程式碼 import 進來)
if __name__ == '__main__' 這個區塊裡面的程式碼,
只有當情況1 自己本身執行 的時候才會運作,而被 import 時這個區塊則會被忽略。
所以可以視情況而將程式碼放進這個區塊中啦~
來 test 一下, 現在有 t1.py、t2.py 兩支程式,
兩支的程式碼相同,只不過 t1.py 在最後兩行import 了 t2.py,
接著執行 t1.py
可以發現,正執行的 t1 本身叫__main__,
t2則叫作t2
來測試另一個test,
讓 t1.py import t1 自己
import進來的t1 __name__就叫t1,而非__main__。