Я пытаюсь на лету изменить некоторые параметры, используемые функцией выхода менеджера контекста.Я пытаюсь связать параметр с переменной, известной в блоке with
from contextlib import contextmanager
import tempfile, shutil
@contextmanager
def tempdir(suffix = '', prefix = '', dir = None, ignore_errors = False,
remove = True):
"""
Context manager to generate a temporary directory with write permissions.
"""
d = tempfile.mkdtemp(suffix, prefix, dir)
try:
yield d
finally:
print "finalizing tempdir %s, remove= %s" %(d,remove)
if remove:
shutil.rmtree(d, ignore_errors)
willremove = True
with tempdir(remove = willremove) as t:
#attempt to modify parameter
willremove = False
print "willremove:%s" %willremove
pass
. Я ожидаю, что изменение значения willremove приведет к изменению переменной удаления в части finally: функции contextmanager, но этоне помогает