eval() 是Python内置函数之一,用于评估并执行以字符串形式表示的Python表达式。它的语法如下:
eval(expression, globals=None, locals=None)
参数说明:
expression 是要评估的字符串表达式,可以包含有效的Python代码。
globals(可选)是一个字典,提供全局命名空间。如果未提供,将使用当前全局命名空间。
locals(可选)是一个字典,提供局部命名空间。如果未提供,将使用当前局部命名空间。
eval() 函数将解析并执行传递给它的字符串表达式,并返回表达式的结果。它可以用于执行简单的算术运算、调用函数或方法、创建对象等。下面是几个示例说明 eval() 函数的用法:
简单表达式求值:
result = eval("2 + 3 * 4") # 执行表达式:2 + 3 * 4
print(result) # 输出结果:14
调用函数或方法:
x = 5
y = eval("pow(x, 2)") # 调用 pow() 函数计算 x 的平方
print(y) # 输出结果:25
创建对象:
class MyClass:
def __init__(self, value):
self.value = value
obj = eval("MyClass(42)") # 创建 MyClass 对象,并传递参数 42
print(obj.value) # 输出结果:42
需要注意的是,eval() 函数执行传递的字符串表达式时,会将其作为Python代码进行求值。因此,如果字符串表达式来自不受信任的来源,使用 eval() 时应谨慎,以防止执行恶意代码。在实际应用中,最好避免使用 eval(),除非完全信任输入的字符串表达式。