빠른 링크

+ quit() 또는 exit() 사용

+ sys.exit() 사용

+ os._exit() 사용

+ Python에서 프로그램을 종료하려면 어떤 방법을 사용해야 하나요?

프로그램을 효과적으로 종료하는 방법을 이해하면 다양한 애플리케이션에서 이점을 얻을 수 있습니다. 예를 들어, 특정 사용자 입력을 받거나 미리 정해진 전제 조건이 충족되면 중단되는 기본적인 비디오 게임을 설계한다고 가정해 보겠습니다. 이 경우 파이썬 스크립트를 종료하는 다양한 방법에 대해 잘 알고 있으면 도움이 될 것입니다.

quit() 또는 exit() 사용

quit() 또는 exit() 함수와 같은 고유한 옵션 중 하나를 사용하여 Python 프로그램을 종료할 수 있습니다. 이러한 함수가 호출되면 프로그램은 실행을 종료합니다.

quit() 및 exit() 함수는 모두 동일한 용도로 사용되며, 기능상 눈에 띄는 차이는 없습니다. 어느 쪽을 사용할지는 궁극적으로 개인의 선택에 달려 있습니다.

Python 스크립트를 종료하려면 다음과 같은 방식으로 quit() 함수를 활용하세요:

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

앞서 언급한 코드 스니펫은 IDLE로 알려진 Python IDE의 터미널 인터페이스 내에서 0에서 8까지의 숫자를 연속적으로 표시하도록 설계되었습니다. 9라는 값에 도달하면 프로그램 실행이 종료됩니다. 또한 ‘quit()’ 함수를 사용하여 파이썬 환경의 대화형 작업을 갑작스럽게 종료할 수 있습니다.

`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)

소프트웨어의 후속 생산성은 다음과 같은 결과를 산출합니다:

이 글도 확인해 보세요:  Vite로 React 앱을 설정하는 방법

`quit` 및 `exit` 메서드와 비슷한 맥락에서 `sys.exit()` 함수도 마찬가지로 `SystemExit` 예외를 도출합니다. sys.exit()`와 `raise SystemExit()`는 모두 선택적 매개변수와 함께 호출할 수 있다는 점에 주목할 필요가 있습니다.

앞서 설명한 코드의 작동을 이해하려면 기본적인 파이썬 함수에 대한 이해가 필수적입니다.

os._exit() 사용

프로그램을 종료하는 또 다른 방법은 종료 상태 코드를 나타내는 선택적 매개변수를 제공할 수 있는 `os._exit()` 메서드를 활용하는 것입니다. 이 메서드는 `os` 모듈 내에서 시작되며 일반적으로 파이썬 스크립트의 종료와 관련된 표준 종료 후 작업을 우회하면서 프로세스를 즉시 종료합니다.

이 함수는 정상적인 정리를 수행하지 않고 종료되므로 특별한 경우에만 사용해야 합니다. Python 문서 에 따르면 좋은 예는 포크(os.fork()를 사용하여 만든 새 프로세스) 후 자식 프로세스에 있습니다.

다음은 소프트웨어 애플리케이션을 종료하기 위해 os._exit() 함수를 사용하는 사례입니다:

 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()

앞서 언급한 알고리즘은 다음과 같은 결과를 생성합니다:

파이썬에서 프로그램을 종료하려면 어떤 방법을 사용해야 할까요?

파이썬은 프로그램 종료를 위한 여러 가지 접근 방식을 제공하지만, 대부분 동일한 기능을 수행합니다. 따라서 파이썬 프로그래밍을 처음 시작하는 초보 개발자는 코드에 종료 기능을 추가하기 위해 적절한 방법을 선택하는 데 어려움을 겪을 수 있습니다.

`sys.exit()`에 의존하는 것이 파이썬 스크립트를 종료하는 더 일반적인 접근 방식으로 간주되는 경우가 많습니다. 이 메서드는 종료 목적으로 선택적으로 종료 코드를 포함할 수 있는 SystemExitException을 호출합니다.

Python 읽기-값-출력 루프(REPL)를 사용할 때는 quit() 및 exit() 메서드를 사용하는 것이 좋습니다. 그러나 이러한 메서드는 가용성을 항상 보장할 수 없는 사이트 모듈에 의존하므로 프로덕션 환경에서는 사용하지 않는 것이 좋습니다. 또한 프로세스 포크와 관련된 작업이 아니라면 os._exit() 사용을 자제해야 합니다.

By 최은지

윈도우(Windows)와 웹 서비스에 대한 전문 지식을 갖춘 노련한 UX 디자이너인 최은지님은 효율적이고 매력적인 디지털 경험을 개발하는 데 탁월한 능력을 발휘합니다. 사용자의 입장에서 생각하며 누구나 쉽게 접근하고 즐길 수 있는 콘텐츠를 개발하는 데 주력하고 있습니다. 사용자 경험을 향상시키기 위해 연구를 거듭하는 은지님은 All Things N 팀의 핵심 구성원으로 활약하고 있습니다.