python的with方法打开处理文件帮我我们做了什么?

with语句用于优雅地管理资源,确保执行完毕或出现异常时都能正确释放资源,如文件关闭和线程锁的自动释放。它涉及到实现了__enter__和__exit__方法的上下文管理器对象,enter()方法在进入with代码块前被调用,exit()方法在退出时调用,用于清理工作。as关键字可选,用于存储enter()的返回值。

with语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的清理操作,释放资源,比如文件使用后自动关闭、线程中锁的自动获取和释放等;

with语句即上下文管理器,在程序中用来表示代码执行过程中所处的前后环境。上下文管理器:含有__enter__和__exit__方法的对象就是上下文管理器。

enter():在执行with语句之前,首先执行该方法,通常返回一个实例对象,如果with语句有as目标,则将对象赋值给as目标。

exit():在执行with语句结束后,自动调用__exit__()方法,用户释放资源,若此方法返回布尔值True,程序会忽略异常。

使用环境:文件读写、线程锁的自动释放等。

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

这里context_expression要返回一个上下文管理器对象,该对象并不赋值给as子句中的target(s),而是会将上下文管理器的__enter__()方法的返回值赋值给target(s)。

不太清楚的可以参考链接:

https://juejin.cn/post/6844903795403522056

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值