Contents

Python 中結束程式的 3 種方法

### 快速鏈接

⭐使用 quit() 或 exit()

⭐使用sys.exit()

⭐使用 os._exit()

⭐您應該使用哪一種方法來終止Python程式?

熟練地終止軟體應用程式在各種情況下都具有重要意義。舉例來說,考慮到一個人正在設計一款基本的遊戲,可以根據特定的使用者輸入或實現預先定義的先決條件來退出。深入研究導致 Python 腳本停止的三種方法之間的差異。

使用 quit() 或 exit()

人們可以利用Python腳本的固有函數之一來結束Python腳本,即「quit()」或「exit()」。呼叫這些命令中的任何一個後,程式將停止執行。

quit()exit() 函數都有相同的目的;使用任何一種主要是基於個人喜好的個人選擇問題,而不是功能上的任何顯著差異。

「為了結束 Python 腳本,可以使用 quit() 函數。

 for num in range(10):
    if num == 9:
        quit()
    print(num)

提供的程式碼迭代 0 到 8 範圍內的數字,並在控制台中按順序顯示它們。當遇到值 9 時,程式終止其操作。此外,可以利用「quit()」函數來停止Python整合開發和學習環境(IDLE)的執行。該平台使用戶能夠互動式地執行Python腳本,從而提供動手編程體驗的機會。

應該注意的是,quit()exit()都依賴site模組的功能,因此可能不適合在生產環境中使用。相反,“sys.exit()”提供的替代方法通常被認為在這種情況下更合適。

使用 sys.exit()

在 Python 腳本中使用「sys.exit()」函數時,會引發「SystemExit」異常的實例。此異常支援確定退出代碼的可選參數,預設值為 0。此外,它允許傳遞對象,該對像在執行時將產生退出代碼 1 並在標準上顯示對象的字串表示形式錯誤流。

 import sys # Remember to include this statement at the top of the module

for num in range(10):
    if num == 5:
        sys.exit("You exited the program")
    print(num) 

程式的結果輸出應包含以下格式:

/bc/images/python-code-output-screenshot.jpg

與 Python 內建 sys 模組中的 quit 和 exit 方法提供的功能類似,sys.exit() 方法是另一種優雅終止 Python 腳本的方法。就像它的對應項一樣,當呼叫時,它會觸發引發“SystemExit”異常。這裡顯著的差異在於,呼叫「sys.exit()」或「raise SystemExit()」都將接受一個可選參數,以便在必要時提供附加資訊。

為了全面了解所提供程式碼的功能,建議您熟悉腳本中使用的基本 Python 函數。

使用 os._exit()

退出程式的第三種方法涉及利用特殊的「os._exit()」方法,該方法可讓您提供指定退出狀態碼的選用參數。此方法駐留在 os 模組內,並立即終止進程,而不執行通常與 Python 程式終止相關的常規清理任務。

由於此函數退出時不執行正常清理,因此您應該僅在特殊情況下使用它。根據 Python 文檔,一個很好的例子是 fork 之後的子程序(使用 os.fork() 建立的新進程)。

 import os
import sys

def child_process():
    print("Child process is running.")
    os._exit(0)

def main():
    print("Parent process is running.")

    try:
        pid = os.fork()

        if pid == 0:
            # Code in the child process
            child_process()
        else:
            # Code in the parent process
            print(f"Parent process is continuing with child process PID: {pid}")
    except OSError as e:
        print(f"Fork failed: {e}")
        sys.exit(1)

    print("Parent process is done.")

if __name__ == "__main__":
    main()

上面的程式碼將輸出以下內容:

/bc/images/code-output-python.jpg

在 Python 中應該使用哪一種方法來終止程式?

Python 提供了多種終止程式的方法,儘管其中許多最終會導致程式執行停止。這些替代方案可以減輕在使用 Python 開發軟體時選擇適當的方法來結束程式相關的認知負擔,特別是在學習語言的初始階段。

總之,在終止 Python 程式時,建議使用 sys.exit() 函數,因為它可以有效地產生「SystemExit」例外情況以及可選的退出程式碼,以無縫停止軟體的操作。

在與 Python Read-Eval-Print Loop (REPL) 互動時,建議使用 quit() 和 exit() 方法。但是,建議不要在生產環境中使用這些方法,因為它們依賴“site”模組,而無法始終保證其可用性。此外,除非處理產生新進程的程式碼,否則很少使用 os._exit() 方法。