if __name__ == "__main__": 會做什麼?為什麼要包含 if 語句?
此程式碼檢查模組是否作為主程式運行(而不是作為模組導入)。如果它是作為主程式運行,它將執行 if 語句中的程式碼。
為什麼要包含此語句?
-
防止意外的腳本執行:
- 沒有通過此檢查,導入腳本(例如import my_script)會無意導入中運行腳本的程式碼,即使您只想導入其函數/類別。這可能會導致衝突或意外行為。
-
防止pickle 問題:
- pickling 在a 中定義的類script 將觸發腳本的執行並將腳本導入到unpickling 環境中。這可能會導致命令列參數和其他特定於腳本的依賴項出現問題。
它是如何運作的?
-
__name__: 當 Python執行腳本時,它會設定名稱變數為「__main__。」
-
匯入模組:當您匯入非主模組時,Python會將模區塊的名稱分配給其__name__.
範例:
這確保第一個程式碼區塊僅在直接執行腳本時執行(例如, python my_script. py),而第二個程式碼區塊僅在該腳本匯入到另一個腳本時執行(例如, import
高級注意事項:
-
多name守衛:一般不建議有多個name守衛:
一般不建議有多個- name守衛:一般不建議有多name簽入單一文件,因為這可能會導致意外
自訂
name 值: 您可以在if 語句之外手動設定name以測試不同的執行場景或提供更多控制腳本執行。
以上是`if __name__ == '__main__':` 在 Python 中做什麼,為什麼它很重要?的詳細內容。更多資訊請關注PHP中文網其他相關文章!