以下是相关的代码:
@contextlib.contextmanager
def make_temp_dir():
temp_dir = tempfile.mkdtemp()
yield temp_dir
shutil.rmtree(temp_dir)
with make_temp_dir(listing_id) as tmpdir:
pass
# Sometimes something in here throws an exception that gets caught higher up
好的,所以把这一切都写出来,我现在明白发生了什么。我用装饰器创建的 contextmanager 中的exit方法正在运行,但是这当然不会将流返回到我的生成器。
那么我应该怎么做呢?