我编写了以下代码来管理临时目录。
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
个实例发生了什么?