深入理解python with语句

Posted on 2018-02-23 10:35  王将军之武库  阅读(161)  评论(0)    收藏  举报

python的with语句相当于try.....finally,它是如何实现的呢?下面就结合范例和伪指令的实现来分析一下。

with语句会汇编成:先调用with语句后面的表达式(open(...)),再与open的返回结果作为setup_with的参数,从setup_with的实现源码来看,它是先找栈上的第一个参数的__exit__(),然后放到栈上,再找__enter__函数,调用__enter__函数,__enter__函数的返回结果放到栈上,重新建立栈的block,再次执行时就会进入with语句的所管辖的指令啦。

 

博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3