Python 中“finally: pass” 的作用是什么? (例如尝试 - 除外 - 最后)

问题描述 投票:0回答:1

我会假设只有

finally
pass
子句是毫无意义的。

但是在 Bottle 模板中,如果没有它,以下可选包含代码将无法工作。
结果将包含之前的所有内容以及所包含的代码本身,但之后不包含任何内容。
(参见相应问题。)

try:
    include(optional_view)
except NameError:
    pass
finally:
    pass

finally: pass
有什么作用,什么时候有用?

python bottle finally try-finally
1个回答
0
投票

pass
本身不执行任何操作,但它是一个占位符。对于
finally: pass
,整个子句没有任何作用。但在
except NameError: pass
的情况下,它会拦截
NameError
异常,并丢弃它们。如果删除该子句并得到
NameError
异常,则该异常将向上传播而不是被丢弃。因此,在这种情况下,
except
子句会产生影响,即使
pass
语句本身仍然只是一个占位符。

© www.soinside.com 2019 - 2024. All rights reserved.