python 上下文管理器contextlib.ContextManager
1 模块简介 在数年前,Python 2.5 加入了一个非常特殊的关键字,就是with。with语句允许开发者创建上下文管理器。什么是上下文管理器?上下文管理器就是允许你可以自动地开始和结束一些事情。例如,你可能想要打开一个文件,然后写入一些内容,最后再关闭文件。这或许就是上下文管理器中一个最经典的示例。事实上,当你利用with语句打开一个文件时,Python替你自动创建了一个上下文管理器。 with open("test/test.txt","w") as f_obj: f_obj.write("hello") 如果你使用的是Python 2.4,你不得不以一种老的方式来完成这个任务 f_obj = open("test/test.txt","w") f_obj.write("hello") f_obj.close() 下文管理器背后工作的机制是使用Python的方法:__enter__和__exit__。让我们尝试着去创建我们的上下文管理器,以此来了解上下文管理器是如何工作的。 2 模块使用 2.0 一个简单的demo import contextlib import time @contextlib.contextmanager def timeit(title): print('1...') start = time.time() yield print('2...')