Gestores de contexto de Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, serás transportado a una mágica noche estrellada donde eres un viajero interestelar en una búsqueda para aprovechar el poder de los administradores de contexto de Python. En este encantador escenario, explorarás los profundos misterios de la gestión de contexto mientras navegas a través de las estrellas centelleantes y las maravillas celestes.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/AdvancedTopicsGroup(["Advanced Topics"]) python/AdvancedTopicsGroup -.-> python/context_managers("Context Managers") subgraph Lab Skills python/context_managers -.-> lab-271535{{"Gestores de contexto de Python"}} end

Creando un administrador de contexto

En este paso, crearás un administrador de contexto de Python en /home/labex/project/context_manager.py para encapsular un conjunto de operaciones. A continuación, se muestra un ejemplo de un administrador de contexto que simula un portal interestelar:

class InterstellarPortal:
    def __enter__(self):
        print("Opening the portal to another dimension")

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Closing the portal")

## Example usage
with InterstellarPortal():
    print("Stepping into the interstellar portal")

Ejecuta el script:

python context_manager.py

La información siguiente debe aparecer en tu terminal:

Opening the portal to another dimension
Stepping into the interstellar portal
Closing the portal

Manejo de excepciones en un administrador de contexto

En este paso, mejorará el administrador de contexto para manejar las excepciones que pueden ocurrir dentro del contexto. Echa un vistazo al administrador de contexto InterstellarPortal modificado.

En /home/labex/project/context_manager.py:

class InterstellarPortal:
    def __enter__(self):
        print("Opening the portal to another dimension")

    def __exit__(self, exc_type, exc_val, exc_tb):
        print("Closing the portal")
        if exc_type is not None:
            print(f"An error occurred: {exc_type}, {exc_val}")

## Example usage
with InterstellarPortal():
    print("Stepping into the interstellar portal")
    1 / 0  ## Simulate an error

Ejecuta el script:

python context_manager.py

La información siguiente debe aparecer en tu terminal:

Opening the portal to another dimension
Stepping into the interstellar portal
Closing the portal
An error occurred: <class 'ZeroDivisionError'>, division by zero
Traceback (most recent call last):
  File "/home/labex/project/context_manager.py", line 13, in <module>
    1 / 0  ## Simulate an error
ZeroDivisionError: division by zero

Resumen

En este laboratorio, exploraste el encantador mundo de los administradores de contexto de Python al crear tu propio administrador de contexto de portal interestelar y mejorarlo para manejar con gracia las excepciones. Este viaje te permitirá aprovechar los poderes místicos de la gestión de contexto y profundizar en tu comprensión de las características elegantes de Python. ¡Que la codificación interestelar te acompañe!