Sobes.tech
Junior — Middle
113

Можеш ли да покажеш пример како се примењује механизам управљања ресурсима уз помоћ контекстног менаџера?

Одговор од АИ

sobes.tech АИ

Контекстные менеджеры в 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('Работа с ресурсом')

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