python上下文管理协议

编程入门 行业动态 更新时间:2024-10-07 19:21:45

python<a href=https://www.elefans.com/category/jswz/34/1770489.html style=上下文管理协议"/>

python上下文管理协议

当使用with时,会产生上下文管理协议,主要是enter(), exit()方法起作用
with obj as f:
‘代码块’

1.with obj —-》触发obj.enter(),拿到返回值

2.as f—–>f=返回值、

3.with obj as f 等同于 f=obj.enter()

4.执行代码块
一:没有异常的情况下,整个代码块运行完毕后去触发exit,它的三个参数都为None
二:有异常的情况下,从异常出现的位置直接触发exit
a:如果exit的返回值为True,代表吞掉了异常
b:如果exit的返回值不为True,代表吐出了异常
c:exit的的运行完毕就代表了整个with语句的执行完毕

class Foo:def __init__(self,name):self.name=namedef __enter__(self):print('执行enter')return selfdef __exit__(self, exc_type, exc_val, exc_tb):print('执行exit')print(exc_type)print(exc_val)print(exc_tb)return True
with Foo('a.txt') as f:print(f)    # 为__enter__()的返回值print(asdfsaasdfasdfasdfasdfasfasdfasdfasdfasdfasfdasfd)  #触发__exit__print(f.name)print('-----------------')print('-----------------')
print('000000000000000000000000000000000000000000000')

更多推荐

python上下文管理协议

本文发布于:2024-02-28 05:21:01,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1768540.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:上下文   协议   python

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!