try yield finally后的程序何时执行?
def func():try:yieldfinally:xxxa=func()a.next()yyya为一个生成器,在调用next()方法后,会运行到yield, 然后继续运行next()后面的代码yyy。什么时候才会运行finally里的代码呢?经过测试,当无变量指向生成器时,会执行finally后的代码,如:1.程序运行完成2.指向生成器的变量a为方法内的局部变量,该方法已执行完成,a被释放2.del a3. a指向其他对象,如a=2,生成器没有变量指向...
原创
2021-07-26 14:08:09 ·
952 阅读 ·
0 评论