Python的基础—with...as介绍

一、语法结构
with EXPRESSION [ as VARIABLE] WITH-BLOCK 
二、简单描述
存在一些对象或方法,需要事先设置,事后做清理工作。比如文件处理,需要先获取一个文件句柄,从文件中读取数据,然后关闭句柄
java中可以通过try...catch...finally来控制
python中可以通过with...as来控制
三、参数解释
with后的EXPRESSION
是一个求值表达式,返回一个对象,该对象的_enter_()方法被调用
as后的VARIABLE
该对象的_enter_()的返回值将被赋值给“VARIABLE”
WITH-BLOCK 
with代码块,代码块全部执行完后,将调用返回对象的_exit_()方法

四、举例

with open("d:/foo.txt") as file:
    data = file.read()
print data
open执行完后,返回一个file对象,并执行file对象的__enter__()方法

file对象接口,实现了__enter__和__exit__方法

    def __enter__(self): # real signature unknown; restored from __doc__
        """ __enter__() -> self. """
        return self

    def __exit__(self, *excinfo): # real signature unknown; restored from __doc__
        """ __exit__(*excinfo) -> None.  Closes the file. """
        pass
当with后的代码块执行完后,调用file对象的__exit__()方法,该方法会closes the file


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值