Python 中的上下文管理器

Python 中的上下文管理器

with expression [as target]:
    with-body

上下文管理器是为with 语句而生。只要实现了上下文管理器协议__enter____exit__,就可以使用with语句。

__enter__通常执行一些初始化操作,并且该函数的返回值会赋值给可选的 as target 中的target变量。

__exit__执行资源清理工作。它接收三个参数,异常类型,异常实例,和异常栈,根据这些异常信息,__exit__可以选择进行相应的异常处理,并默认抛出异常。如果我们在让__exit__返回True,相当于告诉python:这些异常我都已经处理了,都在掌控之中,您老不必操心。

除了自定义类手动实现两个特殊方法外,还有另一种途径实现一个上下文管理器。
标准库contextlib中提供了一个@contextmanager可以方便的把一个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值