python - 打印没有值的局部变量的名称
问题描述
我可以得到一个局部变量的字典,变量名作为键,值作为值。
>>>> local_vars = locals()
>>>> len(local_vars)
34
如果我只是打印local_vars
它没有帮助,因为某些变量太长了。
我只想打印变量名。但是遇到一个有趣的问题
>>>> for key in local_vars: print(key)
__name__
Traceback (most recent call last):
File "<stdin>", line 1, in <module> RuntimeError: dictionary changed size during iteration
我相信使用 dict.items() 会导致同样的问题,因为我仍然需要创建一个循环。
local_vars
当 for 循环开始时更新似乎很奇怪。似乎它应该是设置时存在的变量的静态字典。
解决方案
如果您只想要变量名称,可以尝试以下操作:
a=1
b=2
c=3
d=4
local_vars = dict(locals())
for variable in local_vars.keys():
print(variable)
在上面的代码中,local_vars 没有得到更新,因为它是 locals() 字典的副本,而不是直接引用。
推荐阅读
- magento2 - magento 2.3 | bin/magento setup:di:compile .. 停止 @ 14%
- java - 扫描仪被跳过
- reactjs - 材质 UI 列表 - 单独的 OnClick 以展开
- javascript - 如何自动执行 JavaScript 架构/依赖规则?
- asp.net-core - Body 标签上的条件 HTML 标签
- apache - Apache - 将特定的 url 映射到不同的文档根目录
- angular - 错误:无法解析“rxjs/add/operator/map”
- angular - 使用 MatBottomSheet 时如何关闭浏览器上的工作表
- python - 在 python pandas 中搜索整行数据框的多个字符串值
- python - 无法将关键字“is_active”解析为字段?