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:
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:
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.