python上下文管理

python上下文管理

什么是上下文管理

python中进行文件操作,经常被建议使用with open的方式,形如:

with open('./dec.py', 'r') as f:
    for line in f.readlines():
        print(line)

why? 这背后的原因是什么?

直观的解释是:这样的好处文件操作是io操作,操作完成之后,需要关闭close,避免文件一直被占用打开。

与之对比另一种写法是:

f = open('./dec.py', 'r')
for line in f.readlines():
    print(line)
f.close()

两种写法对比可以知道:with 方式隐式的帮我们做了资源的释放操作,而这个可能是我们可能遗忘的。

那with是什么?有没有其他的作用?就是今天的主题。

with 上下文管理

with是一种python上下文管理方式;什么是上下文(context)

  • context是指程序运行所处于的环境和自身的状态(如数据)
  • 比如上面提到的文件操作,包含了文件打开获取文件操作的句柄权限(获得资源)、处理文件信息、关闭文件(释放资源);这些都是可以认为是文件的操作的环境和状态,也就是一个上下文(context上下文这个译文有点怪怪,可以理解成一个容器内操作一个过程)

所以with上下文管理就是用在某种资源的创建,使用和回收以及异常处理过程中。语法结构如下:

with context_expression [as target(s)]:
    with-body

结合文件操作来说:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值