Назад к вопросам
Junior
65
questionbank
Приведите пример использования контекстного менеджера в Python.
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
# Открытие файла:
# Использование контекстного менеджера гарантирует автоматическое закрытие файла,
# даже если возникнет исключение.
with open('my_file.txt', 'w') as f:
# Запись данных в файл
f.write('Hello, world!\n')
f.write('This is a test.')
# Пример создания собственного контекстного менеджера с помощью класса:
class ManagedResource:
def __enter__(self):
print('Ресурс выделен')
# Может возвращать объект, который будет присвоен переменной после 'as'
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print('Ресурс освобожден')
# Может обрабатывать исключения. Возврат True suppresses the exception.
return False
# Использование созданного контекстного менеджера:
with ManagedResource() as res:
print('Работаем с ресурсом')
# res - это объект, возвращенный методом __enter__
# Пример создания собственного контекстного менеджера с помощью декоратора contextmanager:
from contextlib import contextmanager
@contextmanager
def efficient_resource():
print('Эффективный ресурс выделен')
try:
yield 'Эффективный ресурс' # Объект, который будет возвращен
finally:
print('Эффективный ресурс освобожден')
# Использование контекстного менеджера с декоратором:
with efficient_resource() as eff_res:
print(f'Используем: {eff_res}')