gpt4 book ai didi

python - `with return .. return` 是无法访问的代码吗?

转载 作者:太空狗 更新时间:2023-10-30 01:53:21 25 4
gpt4 key购买 nike

PyCharm 对这段代码发出警告,说最后一个返回是不可访问的:

def foo():
with open(...):
return 1
return 0

如果 open() 失败,我预计第二个返回将执行。谁是对的?

最佳答案

PyCharm 是对的。如果 open() 失败,将引发异常,并且两者均不 返回

with 不会以某种方式保护您免受生成上下文管理器的表达式中的异常的影响。 with 之后的表达式预计会产生一个上下文管理器,此时它的 __exit__ 方法被存储,它的 __enter__ 方法被调用。这里唯一的结果是成功生成并输入上下文管理器,或者引发异常。在此阶段,with 绝不会吞下异常并默默地跳过该 block 。

关于python - `with return .. return` 是无法访问的代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41278781/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com