Gerenciadores de Contexto Python

PythonBeginner
Pratique Agora

Introdução

Neste laboratório, você será transportado para um céu noturno mágico, onde é um viajante interestelar em uma busca para aproveitar o poder dos gerenciadores de contexto Python. Neste cenário encantador, você explorará os mistérios profundos do gerenciamento de contexto enquanto navega pelas estrelas cintilantes e maravilhas celestiais.

Criando um Gerenciador de Contexto

Nesta etapa, você criará um gerenciador de contexto Python em /home/labex/project/context_manager.py para encapsular um conjunto de operações. Abaixo está um exemplo de um gerenciador de contexto que simula um 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")

Execute o script:

python context_manager.py

As informações abaixo devem ser exibidas no seu terminal:

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

Tratamento de Exceções em um Gerenciador de Contexto

Nesta etapa, você aprimorará o gerenciador de contexto para lidar com exceções que podem ocorrer dentro do contexto. Dê uma olhada no gerenciador de contexto InterstellarPortal modificado.

Em /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

Execute o script:

python context_manager.py

As informações abaixo devem ser exibidas no seu 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

Resumo

Neste laboratório, você explorou o reino encantador dos gerenciadores de contexto Python, criando seu próprio gerenciador de contexto de portal interestelar e aprimorando-o para lidar graciosamente com exceções. Esta jornada irá capacitá-lo a aproveitar os poderes místicos do gerenciamento de contexto e aprofundar sua compreensão dos recursos elegantes do Python. Feliz codificação interestelar!