python之with语句

今天突然想起with语句,想了想,嗯......虽然知道它的用法,但是不知道它的用途何在,于是就google一下,看到了这样一篇文章

http://effbot.org/zone/python-with-statement.htm

在我们实际编程中,我们常常会遇到这样的情况,就是在处理完成一件事情后,需要做一下收尾工作,这样的做法在with语句产生之前一直都是由下面的代码代劳的

1 try:
2     do something
3 finally:
4     do something left

e.g.

try:
    fp = open('filename', 'w')
finally:
    fp.close()

但是考虑到代码的简洁性,在Python 2.5后的版本中,开始引入了with语句,它是通过在相应的类里面加入下面的两个函数实现的

class a_class:
    
    def __enter__(self):
        do something
    return something
def __exit__(self): do somethiing left

在with语句执行时,都要执行__enter__函数,并把返回的对象赋值给as后面的变量,在语句块结束时都要执行__exit__函数,这样通过把相应的代码放入到这两个函数中就可以解决最后需要处理的问题

with open('filename', 'w') as file:
    page = file.read()
    ...
    ...

 

转载于:https://www.cnblogs.com/MyselfDancing/p/3562462.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值