python - 函数内“finally”块的奇怪行为
问题描述
所以假设我有这样的功能:
def dummy():
e = 1
try:
return e
finally:
e = 2
这个函数返回1
,所以看起来return
之前执行了语句finally
,所以finally
完全没有效果。
但是,当我这样声明函数时:
def dummy():
e = {}
e['x'] = 1
try:
return e
finally:
e['x'] = 2
返回值是{'x': 2}
,所以看起来像是finally
之前执行的return
。
有人可以向我解释这里实际上发生了什么吗?
解决方案
推荐阅读
- node.js - 如何在对象的嵌套数组中提取特定属性
- sql - Oracle SQL - 将字段更新为值案例当另一个字段等于某物时
- javascript - 有什么方法可以使用 node.js 运行并将参数传递给 java function\class\jar?
- android - CalendarProvider,如何获取会议的所有者名称?
- android - 我如何解决适配器上的 setOnClickListener
- tensorflow - 结合多个源集做出决策
- c# - 兑换 - LogonHostedExchangeMailbox 错误
- python - 如何使用 python 从 azure function app 中的请求中读取 cookie
- java - 如何使用动画制作包含表情符号的自定义警报对话框
- kubernetes - IBM ICP Auth-pdp 没有响应