Как следует обрабатывать менеджер контекста в другом контексте -менеджере в Python?
Пример: предположим, что у вас есть класс A , который действует как менеджер контекста, и класс B , который также действует как менеджер контекста. Но экземпляры класса B должны будут создавать экземпляр и использовать экземпляр класса A . Я прошел через PEP 343, и это решение, о котором я думал: < /p>
class A(object):
def __enter__(self):
# Acquire some resources here
return self
def __exit__(seplf, exception_type, exception, traceback):
# Release the resources and clean up
pass
class B(object):
def __init__(self):
self.a = A()
def __enter__(self):
# Acquire some resources, but also need to "start" our instance of A
self.a.__enter__()
return self
def __exit__(self, exception_type, exception, traceback):
# Release the resources, and make our instance of A clean up as well
self.a.__exit__(exception_type, exception, traceback)
< /code>
Это правильный подход? Или мне не хватает Gotchas?
Подробнее здесь: https://stackoverflow.com/questions/246 ... xt-manager
Обработка экземпляров контекстного менеджера внутри другого менеджера контекста ⇐ Python
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение