-2
我有一些像这样的代码:如何从其他函数改变locals()的结果?
def f():
i = 5
g(locals())
print 'in f:', i, j
def g(env):
env['j'] = env['i'] + 1
print 'in g:', env['i'], env['j']
f()
我得到:
in g: 5 6
in f: 5---------------------------------------------------------------------------
NameError Traceback (most recent call last)
NameError: global name 'j' is not defined
似乎f中使得G不能改变()由当地人得到了局部变量。无论如何改变其他函数中的局部变量?
答案是不使用'locals()'。你究竟在努力完成什么? – TigerhawkT3
不,错误指向在函数f()中正在访问的局部变量“j”。 –
@ TigerhawkT3你的意思是说这不是Python中的常见要求吗? – maple