Sobes.tech
Back to questions
Junior — Middle
74

Можешь показать пример, как применяется механизм управления ресурсами с помощью контекстного менеджера?

Answer from AI

sobes.tech AI

Контекстные менеджеры в Python используются для автоматического управления ресурсами, такими как файлы, сетевые соединения, блокировки и т.д. Они гарантируют, что ресурс будет корректно освобожден после использования, даже если во время работы возникнут ошибки.

Самый простой пример — работа с файлом через оператор with:

with open('example.txt', 'r') as file:
    data = file.read()
# Здесь файл автоматически закрывается, даже если чтение вызвало исключение

Можно также создавать свои контекстные менеджеры с помощью класса, реализующего методы __enter__ и __exit__:

class ManagedResource:
    def __enter__(self):
        print('Ресурс открыт')
        return self

    def __exit__(self, exc_type, exc_val, exc_tb):
        print('Ресурс закрыт')
        # Можно обработать исключения, если нужно

with ManagedResource() as resource:
    print('Работа с ресурсом')

Такой подход помогает избежать утечек ресурсов и делает код более читаемым и надежным.