如何防止Python 在導入時執行代碼
您已經實現了一個Python 程序,它允許兩種執行方法:交互式帶有使用者輸入的模式(main.py)和處理來自檔案的輸入的批次模式(batch.py)。但是,將main.py匯入到batch.py中,會觸發main.py中程式碼的執行,導致錯誤。
原因:
在Python中,像這樣的關鍵字class 和def 表示遇到時執行的語句。這些語句不僅僅是聲明,而是主動語句,這是一種確保模組中內容存在的設計功能。
解決方案:
解決此問題的Pythonic 方法就是採用以下結構:
# Place any code that should run regardless of execution mode here (e.g., class/def) def main(): pass if __name__ == "__main__": # Code that is only executed when called as "python main.py" main()
透過這種方式,程式碼放置在無論腳本如何呼叫(直接呼叫或透過導入),main 函數都會運行。 main 函數中的程式碼僅在直接執行腳本時才會執行 (python main.py)。
以上是如何防止模組導入期間Python程式碼執行?的詳細內容。更多資訊請關注PHP中文網其他相關文章!