python的with...as...的实质
python的with...as...的实质
一、总结
一句话总结:
with as语句等价于try finally语句
with expression as variable with-block
等价于 try: 执行 __enter__的内容 执行 with_block. finally: 执行 __exit__内容
1、try..except..finally语句的实质?
try捕获异常,except处理异常,finally必定执行
二、python的with...as...的实质
博客对应课程的视频位置:
with expression as variable
with-block
的执行过程是
首先执行expression里面的__enter__函数,
它的返回值会赋给as后面的variable,
想让它返回什么就返回什么,只要你知道怎么处理就可以了,
如果不写as variable,返回值会被忽略。
然后,开始执行with-block中的语句,
不论成功失败(比如发生异常、错误,设置sys.exit()),
在with-block执行完成后,会执行expression中的__exit__函数。
这个和try finally函数有什么关系呢?
其实,这样的过程等价于:
try:
执行 __enter__的内容
执行 with_block.
finally:
执行 __exit__内容
我的旨在学过的东西不再忘记(主要使用艾宾浩斯遗忘曲线算法及其它智能学习复习算法)的偏公益性质的完全免费的编程视频学习网站:
【读书编程笔记】fanrenyi.com;有各种前端、后端、算法、大数据、人工智能等课程。
版权申明:欢迎转载,但请注明出处
一些博文中有一些参考内容因时间久远找不到来源了没有注明,如果侵权请联系我删除。
AI交流资料群:753014672