eval() 是 Python 的一个内置函数,它的主要用法是将字符串作为 Python 代码执行。这是一个非常强大但也可能很危险的工具,因为它允许执行任何 Python 表达式。在使用 eval() 时,一定要注意安全性,避免执行用户提供的不可信的代码。
eval() 函数的基本语法如下:
eval(expression, globals=None, locals=None)
参数解释:
expression:这是需要被执行的 Python 表达式,它是一个字符串。
globals(可选):字典包含全局方法或变量。
locals(可选):字典包含局部方法或变量。
看看下面的简单示例:
x = 1
print(eval('x + 1')) # 输出: 2
在这个例子中,字符串 ‘x + 1’ 被解析并执行,就像它是一个 Python 表达式一样。
再看看一个使用 globals 和 locals 的例子:
x = 1
def test_eval():
x = 5
print(eval('x + 1', {}, {'x': x})) # 输出: 6
test_eval()
print(eval('x + 1')) # 输出: 2
在这个例子中,虽然全局的 x 变量为 1,但在函数 test_eval 中,我们创建了一个新的局部变量 x,并且给它赋值为 5。当我们调用 eval() 并传入一个局部变量字典时,eval() 使用这个局部变量,而不是全局变量。