python - 什么决定了哪些变量包含在闭包中?
问题描述
Python 如何决定包含哪些变量?你可以看到当一个变量被定义为一个名字时,它被愉快地关闭了,但是当使用 定义时locals()
,它并没有被关闭。
效果很好:
def outer():
x = 5
print(x)
def inner():
return x
return inner()
print(outer())
不起作用:
def outer():
locals()['x'] = 5
print(locals()['x'])
def inner():
return locals()['x']
return inner()
print(outer())
解决方案
推荐阅读
- hyperledger-fabric - 如何从超级账本结构链码中以字符特定字符开头的账本中查询所有状态?
- xml - 如何使用 XQuery 跟踪 XML 列表中的重复项?
- javascript - 从 Kendo Grid 生成的 Excel 中删除 HTML
- php - 如何修复通过 PHP 下载时损坏的 PDF 文件
- django - 访问被 CORS 标头阻止
- python - 熊猫连接列
- java - `InputStream` 和 `Reader` 本质上是一样的吗? `OutputStream` 和 `Writer` 本质上是一样的吗?
- mysql - 如何从表中删除而不必删除约束
- python - 如何在 postgresql3 中将 NULL 插入具有时间戳类型的列中
- javascript - 我是否需要 react-redux 的数据库才能存储用户?