使用 batch.py 執行 Python 程式時遇到一個特殊問題。導入主模組時出現錯誤。本問題探討了 Python 在匯入時執行程式碼的原因,並提供了緩解這種行為的解決方案。
潛在問題
Python 將 class 和 def 等關鍵字解釋為可執行語句。導入模組會觸發這些語句的立即執行。對於batch.py,導入main會導致執行main的程式碼,從而導致上述錯誤。
解決方案:僅在必要時執行程式碼
慣用語解決這個問題的方法是分離程式碼執行。以下做法使您能夠定義函數和類,同時防止它們執行,除非直接運行模組:
# Code to be executed regardless of import status # (e.g., class and function definitions) def main(): # Code to be executed only when the module is run as the main program if __name__ == "__main__": main()
透過將可執行程式碼放在主函數中,Python 僅在直接運行模組時執行它通過其腳本名稱,例如“python main.py”。這可以防止模組導入期間意外執行程式碼,例如“python batch.py”的情況。
以上是為什麼 Python 在導入時執行程式碼,以及如何防止它?的詳細內容。更多資訊請關注PHP中文網其他相關文章!