Какие знаешь способы создания контекстного менеджера

Python Middle Без компании
Какие знаешь способы создания контекстного менеджера
Ответы
В Python есть два основных способа создания контекстного менеджера: - **Использование класса с методами `__enter__` и `__exit__`**: ``` class MyContextManager: def __enter__(self): print("Entering context") return self def __exit__(self, exc_type, exc_val, exc_tb): print("Exiting context") if exc_type: # Обработка исключений print(f"Exception occurred: {exc_val}") return True # Подавляем исключение ``` - **Использование `contextlib.contextmanager` декоратора** (более питонический способ): ``` from contextlib import contextmanager @contextmanager def my_context_manager(): print("Entering context") try: yield "resource" finally: print("Exiting context") ``` Оба способа позволяют использовать менеджер через конструкцию `with`: ``` with MyContextManager() as cm: # do something with my_context_manager() as res: # do something ``` Классовый подход дает больше контроля, особенно при обработке исключений. Декораторный вариант проще и компактнее для простых случаев.