上下文管理器(Context managers)
使用上下文管理器最广泛的案例就是语句了。
想象下你有两个需要结对执行的相关操作,然后还要在它们中间放置一段代码。
上下文管理器就是专门让你做这种事情的。举个例子:
file = open('some_file', 'w')
file.write('Hola!')
file.close()
当与第一个例子对比时,我们可以看到,通过使用,许多样板代码(boilerplate code)被消掉了。 这就是with
语句的主要优势,它确保我们的文件会被关闭,而不用关注嵌套代码如何退出。
让我们看看如何来实现我们自己的上下文管理器。这会让我们更完全地理解在这些场景背后都发生着什么。