ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Pyton/프로그램의 종료, exit() & quit()
    코딩/Python 2024. 4. 17. 03:46
    728x90

    quit()이 영향을 끼치는 범위

    quit()은 quit()이 포함된 함수에서 중단되는 것이 아닌 전체 프로세스 수준에서 중단된다. 아래의 예제에서 프로그램은 test_quit1()에서 중단되고 동시에 test_quit2()와 test_quit3()도 함께 중단된다.

    def test_quit1(a):
        if a == '':
            quit()
        else:
            print(a)
    
    def test_quit2(a):
        test_quit1(a)
        print('2')
    
    def test_quit3(a):
        test_quit2(a)
        print('3')
        
    a = ''
    test_quit3(a)

    exit()와 quit()의 차이

    exit()와 quit() 함수는 모두 현재 실행 중인 Python 인터프리터를 종료하는 함수이다. 하지만 이 두 함수는 약간의 차이점이 있다.

    가장 큰 차이점은 exit() 함수가 sys.exit() 함수를 호출하여 현재 프로세스를 강제로 종료하는 반면, quit() 함수는 builtins.quit() 함수를 호출하여 현재 인터프리터를 정상적으로 종료한다.

    그러므로, exit() 함수는 예외처리 및 프로그램 강제 종료 시 사용하고, quit() 함수는 대화형 인터프리터에서 사용하는 것이 일반적이다.

    또 다른 차이점은 exit() 함수는 인자로 반환 코드를 받아 강제로 프로세스를 종료할 때 사용할 수 있지만, quit() 함수는 반환 코드를 인자로 받지 않는다.

    예를 들어, 다음과 같이 코드를 작성하면 exit() 함수를 사용하여 현재 프로세스를 강제로 종료할 수 있다.

    import sys
    
    try:
        # 프로그램 실행 중 예외 발생 시
        sys.exit(1)
    except:
        # 예외 처리 후 강제 종료
        sys.exit()

    반면에 quit() 함수는 반환 코드를 받지 않기 때문에 다음과 같이 사용할 수 있습니다.

    print("프로그램을 종료합니다.")
    quit()

    따라서, exit() 함수와 quit() 함수는 프로그램 종료를 위해 사용되는 함수이지만, exit() 함수는 프로세스를 강제로 종료하는 데 사용되고, quit() 함수는 인터프리터를 정상적으로 종료하는 데 사용된다.

    728x90

    댓글

Designed by Tistory.