我不知道为什么这甚至让我恍然大悟,但如果我有一个符合上下文管理器的类,它是另一个上下文管理器类的子类,如下所示。我已经展示了 __exit__ 调用 close() 的“典型”模型。我的问题是:应该 bar.__exit__() 显式调用 super(bar,self).__exit__(args) 还是应该 bar 的 close() 调用 foo 的 close 或???在这种情况下,这里推荐的模型是什么?
class foo(object):
def __enter__(self):
pass
def __exit__(self,*exc_info):
self.close()
return False
def close(self):
pass
class bar(foo):
def __enter__(self):
pass
def __exit__(self,*exc_info):
self.close()
return False
def close(self):
super(bar,self).close() # is this the recommend model?
谢谢。