-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcontext_manager.py
More file actions
23 lines (19 loc) · 1.23 KB
/
context_manager.py
File metadata and controls
23 lines (19 loc) · 1.23 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
"""
Контекстный менеджер — это объект, реализующий методы __enter__ и __exit__, который используется
для работы с ресурсами, гарантируя правильное открытие и закрытие ресурса,
даже при возникновении исключения (ошибки)
"""
class MyContextManager:
def __enter__(self):
print("Вход в контекст")
return self # Позволяет вернуть объект при необходимости
def __exit__(self, exc_type, exc_value, traceback):
print("Выход из контекста")
# Если exc_type не None, значит произошла ошибка
if exc_type:
print(f"Произошло исключение: {exc_value}")
return True # Если вернуть True, исключение не будет проброшено
# Пример использования контекстного менеджера:
with MyContextManager() as manager:
print("Внутри контекста")
raise ValueError("Что-то не так..") # raise - вызывает исключение