Middle
44
Менеҷери контекст чист, кадом вазифаҳоро ҳал мекунад ва чӣ гуна метавон дарсили худ бо истифода аз синф ва декоратор нависем?
Ширкатҳо дар куҷо пурсиданд
fabriqeue
Ҷавоб аз AI
sobes.tech AI
Контекстный менеджер в Python — это объект, который управляет ресурсами, обеспечивая их корректное открытие и закрытие. Он используется с конструкцией with, что гарантирует выполнение кода очистки даже при возникновении исключений.
Задачи контекстного менеджера:
- Автоматическое освобождение ресурсов (файлы, соединения, блокировки)
- Обеспечение чистоты кода и предотвращение утечек ресурсов
Пример реализации через класс:
class MyContextManager:
def __enter__(self):
print("Ресурс открыт")
return self
def __exit__(self, exc_type, exc_val, exc_tb):
print("Ресурс закрыт")
# Можно обработать исключения, если нужно
with MyContextManager() as cm:
print("Работа с ресурсом")
Пример реализации через декоратор contextlib.contextmanager:
from contextlib import contextmanager
@contextmanager
def my_context():
print("Ресурс открыт")
try:
yield
finally:
print("Ресурс закрыт")
with my_context():
print("Работа с ресурсом")
Оба варианта позволяют удобно управлять ресурсами и обеспечивают выполнение кода очистки.