我想完成类似的事情:
class my_context(object):
def __init__(self):
self.obj1 = Obj()
self.obj2 = Obj()
...
def __enter__(self):
''' initialize objects '''
def __exit__(self, type, value, tb):
''' uninitialize objects '''
有许多Obj
属性是需要关闭/删除/等的资源。我希望使用上下文管理器来设置它们然后摆脱它们。然而,我发现我尝试时无法访问属性:
with my_context() as cont:
cont.obj1 # doesn't work
有没有办法可以访问这些属性?
答案 0 :(得分:5)
要使with... as
语法有效,您的__enter__()
必须返回一个值。
如果您想使用与my_context
类提供的属性相同的属性,您可能希望返回self
。