Contents

3 sposoby na zakończenie programu w Pythonie

Szybkie linki

⭐ Korzystanie z quit() lub exit()

⭐ Korzystanie z sys.exit()

⭐ Korzystanie z os._exit()

⭐ Której metody należy użyć do zakończenia programu w Pythonie?

Sprawne zakończenie działania aplikacji ma znaczenie w różnych sytuacjach. Na przykład, biorąc pod uwagę, że ktoś opracowuje podstawową grę wideo, możliwe jest wyjście z programu w oparciu o określone dane wejściowe użytkownika lub po spełnieniu wcześniej zdefiniowanego warunku wstępnego. Zagłęb się w rozbieżności między trzema metodami powodującymi zatrzymanie skryptu Pythona.

Używanie quit() lub exit()

Można zakończyć skrypt Pythona, wykorzystując jedną z jego nieodłącznych funkcji, a mianowicie “quit()” lub “exit()”. Po wywołaniu jednego z tych poleceń program przestanie być wykonywany.

Zarówno funkcja quit() , jak i exit() służą identycznym celom; użycie którejkolwiek z nich jest przede wszystkim kwestią indywidualnego wyboru opartego na osobistych skłonnościach, a nie jakiejkolwiek znaczącej różnicy w funkcjonalności.

“Aby zakończyć działanie skryptu Pythona, można użyć funkcji quit().

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

Podany kod iteruje przez liczby od 0 do 8, wyświetlając je sekwencyjnie w konsoli. Po napotkaniu wartości 9 program kończy działanie. Dodatkowo można użyć funkcji quit() , aby przerwać wykonywanie zintegrowanego środowiska programowania i uczenia się Python (IDLE). Platforma ta umożliwia użytkownikom interaktywne wykonywanie skryptów Pythona, oferując możliwość praktycznego programowania.

Należy zauważyć, że zarówno quit() , jak i exit() są zależne od funkcjonalności modułu site , a zatem mogą nie być odpowiednie do użytku w środowiskach produkcyjnych. Zamiast tego alternatywne podejście zapewniane przez sys.exit() jest ogólnie uważane za bardziej odpowiednie w takich kontekstach.

Korzystanie z funkcji sys.exit()

Podczas korzystania z funkcji sys.exit() w skrypcie Pythona zgłaszana jest instancja wyjątku SystemExit . Ten wyjątek obsługuje opcjonalny parametr, który określa kod wyjścia, z domyślną wartością 0. Dodatkowo pozwala na przekazanie obiektu, który po wykonaniu da kod wyjścia 1 i wyświetli reprezentację łańcuchową obiektu w standardowym strumieniu błędów.

 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) 

Wynikowe wyjście programu składa się z następującego formatu:

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

Podobnie do funkcjonalności zapewnianej przez metody quit i exit we wbudowanym module Pythona sys , metoda sys.exit() jest kolejnym sposobem na zgrabne zakończenie skryptu Pythona. Podobnie jak jej odpowiedniki, po wywołaniu powoduje podniesienie wyjątku SystemExit . Godna uwagi różnica polega na tym, że wywołanie sys.exit() lub raise SystemExit() zaakceptuje opcjonalny argument w celu dostarczenia dodatkowych informacji, jeśli to konieczne.

Aby uzyskać pełne zrozumienie funkcjonalności dostarczonego kodu, zaleca się zapoznanie się z podstawowymi funkcjami Pythona, które są wykorzystywane w skrypcie.

Korzystanie z os._exit()

Trzecie podejście do wyjścia z programu polega na wykorzystaniu specjalnej metody os._exit() , która umożliwia podanie opcjonalnego parametru określającego kod statusu wyjścia. Metoda ta znajduje się w module os i natychmiast kończy proces bez wykonywania zwyczajowych zadań czyszczenia zwykle związanych z zakończeniem programu Pythona.

Ponieważ funkcja ta kończy działanie bez wykonywania normalnego czyszczenia, należy jej używać tylko w szczególnych przypadkach. Zgodnie z dokumentacją Pythona, dobrym przykładem jest proces potomny po rozwidleniu (nowy proces utworzony przy użyciu 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()

Powyższy kod da następujący wynik:

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

Której metody należy użyć do zakończenia programu w Pythonie?

Python oferuje kilka metod kończenia programu, choć wiele z nich ostatecznie skutkuje zaprzestaniem jego wykonywania. Te alternatywy mogą zmniejszyć obciążenie poznawcze związane z wyborem odpowiedniej metody zakończenia programu podczas tworzenia oprogramowania w Pythonie, szczególnie na początkowych etapach nauki języka.

Podsumowując, podczas kończenia programu w Pythonie zaleca się korzystanie z funkcji sys.exit() , ponieważ skutecznie generuje ona wyjątek SystemExit wraz z opcjonalnym kodem wyjścia w celu płynnego zakończenia działania oprogramowania.

Wykorzystanie metod quit() i exit() jest zalecane podczas interakcji z pętlą Read-Eval-Print Loop (REPL) Pythona. Odradza się jednak stosowanie tych metod w środowisku produkcyjnym ze względu na ich zależność od modułu site , którego dostępności nie można zagwarantować przez cały czas. Co więcej, uciekanie się do metody os._exit() jest rzadką praktyką, z wyjątkiem sytuacji, gdy mamy do czynienia z kodem, który tworzy nowe procesy.