我有一个函数,该函数接受带有某些定义的源代码的字符串,exec
将其定义-然后从locals()
获取新的定义。
def do_exec(code):
exec(code)
print(locals()['x'])
do_exec('x = 5')
这按预期工作。
但是,当我尝试这样做时:
def do_exec_2(code):
exec(code)
x = locals()['x']
print(x)
do_exec_2('x = 5')
我得到一个错误:
KeyError: 'x'
那是为什么?