with语句的目标不绑定到变量

时间:2015-06-13 02:18:04

标签: python contextmanager

我编写了以下代码来管理临时目录。

class TempDirectory(object):
    def __init__(self):
        self.path = None
    def __enter__(self):
        self.path = tempfile.mkdtemp()
        print self.path
    def __exit__(self, exc_type, exc_value, traceback):
        def warn(function, path, excinfo):
            print "warning: could not remove temporary object '%s'"%path
        shutil.rmtree(self.path, True, warn)

然而,当我尝试使用它时:

with TempDirectory() as tempdir:
    print tempdir

tempdir始终为None。这是一个问题,因为那时我无法访问临时目录的路径!

我已经为with语句中的reference documentation倾注了2.7,我无法看到我的代码与提供的示例之间存在显着差异here

TempDirectory个实例发生了什么?

0 个答案:

没有答案