(Python)What is if __name__ == '__main__' in Python ?

Jerry Wu
Jan 6, 2021

--

from https://medium.com/@ayushpriya10/why-do-we-use-if-name-main-in-python-cb77b95e0ce7

到底這個if __name__ == '__main__':是什麼意思呢 ?

首先,如果你永遠都只執行一個 Python 檔,而不引用別的 Python 檔案的話,那麼你不必知道這是什麼東西,反之則來好好理解它吧!

我直接舉一個例子🌰

首先先創建一個 test_Demo.py 然後寫入以下程式:

然後執行 test_Demo.py 會得到:

Taiwan
__main__
Taiwan Number
Taiwan Number One !

接著在同一層的資料夾中建立名稱為 import_test_Demo.py 的檔案,寫入以下程式:

然後執行 import_test_Demo.py 會得到:

Taiwan
test_Demo

簡而言之 __name__ 會是當前檔案名稱,當檔案被直接運行時檔案名稱將為__main__ 。 因此,

「單獨執行」時程式將被運行,if __name__ == '__main__'成立

「被引用」時程式不被運行,if __name__ == '__main__'不成立

為什麼要有if __name__ == '__main__'?

在於獨立撰寫一些funtion時,可以直接執行funtion單純的看這個function功能是否正常。然而,這一個function實際上可能是要給一個大的主程式所使用,如果每一次都要檢查function是否正常,都要執行main,是一個費時費力的過程,若能直接執行funtion檢查功能是否正常,將相對有效率!

簡而言之,我們透過「if __name__ == '__main__'」來控制funtion,可以將測試資料放在「if __name__ == '__main__'」的裡面,當單純執行function的執行檔時,則會利用測試資料檢測其功能;當利用main呼叫function操作時,就不會執行測試資料!只會直接執行main所想代入之變數,傳到function運算後將結果回傳給main!

謝謝你的閱讀!如果有任何回饋或疑問,歡迎留言給我!
如果對我的文章有興趣,請不吝按下Follow & Clap!
每個月都會認真更新文章唷😊 千萬別錯過了~

--

--

Jerry Wu

Full-Stack Engineer,熱愛接觸Web前後端、DevOps相關技術與知識,喜歡分享、旅遊和桌球🏓