(Python)What is if name == ‘main’ in Python ?

本篇同步發佈在 Medium 平台上 Medium 連結

到底這個 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!

comments powered by Disqus