Comandos de salida de Python: quit(), exit(), sys.exit() y os._exit()

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.

  1. 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
    
  2. salida()

    exit()se define en site.pyy 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 de quit()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
    
  3. sys.exit([arg])

    A diferencia de quit()y exit(), sys.exit()se considera bueno para ser utilizado en código de producción porque el módulo sys siempre está disponible. El argumento opcional argpuede 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
    
  4. 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 el sys.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.

Publicación traducida automáticamente

Artículo escrito por naina024 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *