Python 的模組執行之謎
在 Python 程式設計中,匯入模組時可能會遇到意外行為。考慮一個提供兩種操作模式的程式:透過main.py的使用者互動模式和透過batch.py的批次模式。
當batch.py導入main.py但意外觸發其執行時,就會出現問題代碼。會出現這種情況是因為 Python 將 class 和 def 之類的關鍵字視為可執行語句而不是宣告。
解決方案:條件執行
為了防止這種不必要的執行,Python 提供了一個已知的解決方案作為條件執行。它涉及封裝僅在直接呼叫模組時運行的程式碼,而不是導入的程式碼。
以下程式碼片段示範了這種方法:
# Code that can be executed both when called directly and imported ... # Code to be executed only when called directly def main(): ... # Conditional execution to only run 'main' when the module is called directly if __name__ == "__main__": main()
在此模式中,放置在模組之外的任何程式碼無論模組是導入還是直接調用,if __name__ == " __main__" 區塊都會被執行。此區塊中的程式碼僅在直接呼叫模組時才會執行,有效防止導入期間不必要的執行。
以上是在 Python 中導入模組時如何防止執行不需要的程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!