【发布时间】:2020-04-18 16:47:13
【问题描述】:
我有一个名为 Promotions 的模块,其中包含一些函数,并且我有一个变量来存储名称中包含“_promo”的所有函数的列表。
promos = [
locals()[name] for name in locals() # Iterate over each name in the dictionary returned by locals()
if name.endswith("_promo") # Select only names that end with the _promo suffix.
]
当我在另一个地方导入促销并要求检索促销时,我得到一个KeyError。
但是,如果我做同样的事情,但将 locals() 替换为 globals(),我不会得到 KeyError。
有人知道为什么吗?
编辑:
是不是因为我第二次打电话给locals()(在locals()[name])我不在同一个范围内了?
【问题讨论】:
-
这能回答你的问题吗? KeyError when formatting locals
-
你用的是哪个python版本?
标签: python global local symbol-table