Las funciones quit()
, exit()
y tienen casi la misma funcionalidad, ya que generan la sys.exit()
excepción por la cual el intérprete de Python sale y no se imprime el seguimiento de la pila. Podemos capturar la excepción para interceptar salidas anticipadas y realizar actividades de limpieza; si no se detecta, el intérprete sale como de costumbre.os._exit()
SystemExit
Cuando ejecutamos un programa en Python, simplemente ejecutamos todo el código en el archivo, de arriba a abajo. Los scripts normalmente salen cuando el intérprete llega al final del archivo, pero también podemos solicitar que el programa salga explícitamente con las funciones de salida integradas.
- abandonar()
Funciona solo si el módulo del sitio se importa, por lo que no debe usarse en el código de producción. El código de producción significa que el código está siendo utilizado por la audiencia prevista en una situación del mundo real. Esta función solo debe usarse en el intérprete.
Plantea la excepción SystemExit detrás de escena. Si lo imprime, le dará un mensaje:
Ejemplo:
# Python program to demonstrate
# quit()
for
i
in
range
(
10
):
# If the value of i becomes
# 5 then the program is forced
# to quit
if
i
=
=
5
:
# prints the quit message
print
(quit)
quit()
print
(i)
Producción:
0 1 2 3 4 Use quit() or Ctrl-D (i.e. EOF) to exit
- salida()
exit()
se define ensite.py
y funciona solo si el módulo del sitio se importa, por lo que debe usarse solo en el intérprete. Es como un sinónimo dequit()
hacer que Python sea más fácil de usar. También da un mensaje cuando se imprime:Ejemplo:
# Python program to demonstrate
# exit()
for
i
in
range
(
10
):
# If the value of i becomes
# 5 then the program is forced
# to exit
if
i
=
=
5
:
# prints the exit message
print
(exit)
exit()
print
(i)
Producción:
0 1 2 3 4 Use exit() or Ctrl-D (i.e. EOF) to exit
- sys.exit([arg])
A diferencia de
quit()
yexit()
,sys.exit()
se considera bueno para ser utilizado en código de producción porque el módulo sys siempre está disponible. El argumento opcionalarg
puede ser un número entero que proporcione la salida u otro tipo de objeto. Si es un número entero, cero se considera «terminación exitosa».Nota: También se puede pasar una string al método sys.exit().
Ejemplo: un programa que detiene la ejecución si la edad es menor de 18 años.
# Python program to demonstrate
# sys.exit()
import
sys
age
=
17
if
age <
18
:
# exits the program
sys.exit(
"Age less than 18"
)
else
:
print
(
"Age is not less than 18"
)
Producción:
An exception has occurred, use %tb to see the full traceback. SystemExit: Age less than 18
- os._exit(n)
os._exit()
El método en Python se usa para salir del proceso con el estado especificado sin llamar a los controladores de limpieza, vaciar los búferes de stdio, etc.Nota: este método normalmente se usa en procesos secundarios después de la
os.fork()
llamada al sistema. La forma estándar de salir del proceso es elsys.exit(n)
método.# Python program to explain os._exit() method
# importing os module
import
os
# Create a child process
# using os.fork() method
pid
=
os.fork()
# pid greater than 0
# indicates the parent process
if
pid >
0
:
print
(
"\nIn parent process"
)
# Wait for the completion
# of child process and
# get its pid and
# exit status indication using
# os.wait() method
info
=
os.waitpid(pid,
0
)
# os.waitpid() method returns a tuple
# first attribute represents child's pid
# while second one represents
# exit status indication
# Get the Exit code
# used by the child process
# in os._exit() method
# firstly check if
# os.WIFEXITED() is True or not
if
os.WIFEXITED(info[
1
]) :
code
=
os.WEXITSTATUS(info[
1
])
print
(
"Child's exit code:"
, code)
else
:
print
(
"In child process"
)
print
(
"Process ID:"
, os.getpid())
print
(
"Hello ! Geeks"
)
print
(
"Child exiting.."
)
# Exit with status os.EX_OK
# using os._exit() method
# The value of os.EX_OK is 0
os._exit(os.EX_OK)
Producción:
In child process Process ID: 25491 Hello ! Geeks Child exiting.. In parent process Child's exit code: 0
Entre las cuatro funciones de salida anteriores, se prefiere principalmente sys.exit(), porque las funciones exit() y quit() no se pueden usar en el código de producción, mientras que os._exit() es para casos especiales solo cuando se requiere una salida inmediata.