Обработка экземпляров контекстного менеджера внутри другого менеджера контекстаPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Обработка экземпляров контекстного менеджера внутри другого менеджера контекста

Сообщение Anonymous »

Как следует обрабатывать менеджер контекста в другом контексте -менеджере в 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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»