【发布时间】:2010-11-11 15:22:35
【问题描述】:
如何在 python 中修改函数的本地命名空间?我知道 locals() 在函数内部调用时会返回函数的本地命名空间,但我想做这样的事情(我有一个原因,为什么我想在 f 无法访问 g 的情况下这样做,但给出更快一个简单的、愚蠢的例子来说明问题):
def g():
pass
def f():
g()
f.add_to_locals({'g':g})
【问题讨论】:
-
你使用这种奇怪的技术的最终目标是什么?为什么不能在 f() 之前定义 g()?
-
我之前曾尝试在运行时弄乱函数的命名空间(用于测试/模拟)但失败了......仅供参考。
-
add_to_locals到底是什么?对我来说似乎不存在。AttributeError: 'function' object has no attribute 'add_to_locals' -
@CharlieParker 它不存在。这就是他正在尝试实施的/询问是否有解决方案来做到这一点。
-
你设法让它工作了吗?
标签: python namespaces local