python之with语句

with语句也可以进行预定义的清理操作,无论资源在使用过程中是否发现了异常,都会执行释放资源的操作。
格式:with 上下文表达式 【as 对象】;

  • 上下文表达式返回上下文管理器对象
  • 指定as后不赋值给对象,而是将上下文管理器的__enter __()方法的返回值赋值给对象
  • 执行对对象的操作前,会调用上下文管理器的__enter __()方法,执行操作后调用__exit __()
with open('./file001.txt',encoding='UTF-8') as file:
    file.read()

当对文件的操作结束后,with语句关闭文件

上下文管理器,包括__enter__(self)和__exit__(self,type,value,tb)两个方法,type为异常类型,value为是否无异常,tb为追踪信息

  • 执行上下文表达式时,生产一个上下文管理器对象
  • 调用__enter__()方法,指定as后,将返回值赋值给资源对象
  • 执行with语句的代码块
  • 执行__exit__()
  • 无异常以None作为__exit__()的参数,有异常以异常信息作为参数
  • exit()返回True为无异常,False为有异常会重新抛出异常,让with语句之外的语句处理
  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值