Back to questions
Junior — Middle
57
Имели ли опыт использования менеджеров контекста в Python для автоматического управления ресурсами?
Answer from AI
sobes.tech AI
Да, в Python менеджеры контекста используются для автоматического управления ресурсами, такими как файлы, сетевые соединения, блокировки и т.д. Они реализуются через методы __enter__() и __exit__().
Самый распространённый пример — открытие файла с помощью with, который гарантирует закрытие файла даже при возникновении исключений:
with open('file.txt', 'r') as f:
data = f.read()
# файл автоматически закрыт здесь
Можно создавать собственные менеджеры контекста с помощью класса или декоратора contextlib.contextmanager:
from contextlib import contextmanager
@contextmanager
def managed_resource():
print('Ресурс открыт')
yield
print('Ресурс закрыт')
with managed_resource():
print('Работа с ресурсом')
Это упрощает управление ресурсами и делает код более надёжным и читаемым.