首页 > 解决方案 > 调用 eval() 时出现“NameError: name 'numpy' is not defined”

问题描述

x = 0
x2 = 0
f = "numpy.sin(x)"
e1 = eval(f)
e2 = eval(f, {"x":x2})

e2(但不是 e1)的行会产生错误:

NameError: name 'numpy' is not defined

为什么?

标签: pythonnumpyeval

解决方案


由于在 e1 中,您没有覆盖全局变量,因此存在 numpy。在 e2 中,你是,所以解释器看不到你的导入。只需将 numpy 作为变量传递。

e2 = eval(f, {'numpy': numpy, 'x':x2})


推荐阅读