gpt4 book ai didi

python - 带有 finally 子句的 try block 中不允许使用 python 2.4 的 yield 的解决方法

转载 作者:太空狗 更新时间:2023-10-30 02:06:36 26 4
gpt4 key购买 nike

我卡在了 python2.4 上,所以我不能对生成器或 yield 使用 finally 子句。有什么办法可以解决这个问题吗?

我找不到任何关于如何在 python 2.4 中解决此限制的提及,而且我不是我想到的解决方法的忠实粉丝(主要涉及 __del__ 并尝试以确保它在合理的时间内运行)不是很有吸引力。

最佳答案

您可以复制代码以避免 finally block :

try:
yield 42
finally:
do_something()

变成:

try:
yield 42
except: # bare except, catches *anything*
do_something()
raise # re-raise same exception
do_something()

(我没有在 Python 2.4 上试过这个,你可能需要查看 sys.exc_info 而不是上面的 re-raise 语句,如 raise sys.exc_info[0], sys.exc_info[1 ], sys.exc_info[2].)

关于python - 带有 finally 子句的 try block 中不允许使用 python 2.4 的 yield 的解决方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2339358/

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