Python 上下文管理器
什么是上下文管理器?
上下文管理器是Python中一种特殊的对象,它定义了在执行代码块时要建立的运行时上下文。上下文管理器的主要作用是在进入代码块之前进行一些准备工作(如打开文件、获取资源),并在退出代码块时进行必要的清理工作(如关闭文件、释放资源),无论代码块是正常执行完毕还是发生异常。
上下文管理器通常与with
语句一起使用,这大大简化了资源管理的代码编写。
with语句基本语法
with 上下文管理器表达式 as 变量:
# 代码块
# 在这个代码块中可以使用上下文管理器分配的资源
当执行with
语句时,会发生以下过程:
- 执行上下文管理器表达式,获取上下文管理器对象
- 调用上下文管理器的
__enter__()
方法 - 将
__enter__()
方法的返回值赋值给as
后面的变量(如果有的话) - 执行
with
语句体内的代码 - 无论代码执行是否出现异常,都会调用上下文管理器的
__exit__()
方法