【发布时间】:2020-01-31 15:08:47
【问题描述】:
我想得到这种行为:
with Obj(param=1):
with Obj(param=2):
print(...)
使用单个对象:
with UnifyingObj():
print(...)
我想知道如何安全地实现UnifyingObj 类
这必须是一个类。我试图做这样的事情:
class _DualWith:
def __init__(self):
self._with1 = Obj(param=1)
self._with2 = Obj(param=2)
def __enter__(self):
self._with1.__enter__()
self._with2.__enter__()
def __exit__(self, *args, **kwargs):
self._with2.__exit__(*args, **kwargs)
self._with1.__exit__(*args, **kwargs)
但我不认为它是完全安全的
【问题讨论】:
-
您需要以某种方式详细说明您的 多个对象 - 相同的对象,有多少个?
-
它不是重复的,因为我要求它是单个对象
-
您是否希望
param=...始终是静态的(1,2)? -
如果可能的话,我可以使用它
标签: python python-3.x with-statement