当你需要读取一个字符串,然后把字符串当作Python表达式来计算时会用到eval()
函数,通过它可以计算简单的操作,如加、减、乘、除,也能计算复杂的表达式,如函数调用等。
使用方法
eval()
函数的一般用法如下所示:
eval(source, globals=None, locals=None)
- source:字符串或者是一个 Python 表达式。这个表达式对应 eval() 函数或 exec() 函数执行的 Python 代码。
- globals 和 locals(可选):可以传入获取变量值的全局命名空间和局部命名空间,缺省的情况下为当前位置的命名空间。
下面是一个使用eval函数来计算简单表达式的例子:
x = 2
y = 3
result = eval('x + y')
print(result)
上述代码将输出5。
下面是一个更加复杂的示例,它使用eval函数来调用一个函数并返回值:
def sum(a, b):
return a + b
x = 2
y = 3
result = eval('sum(x,y)')
print(result)
上述代码将输出5。
风险
需要注意的是,使用eval()
函数存在一定的风险,因为他可以执行任何Python代码。因此,如果你使用一个来自不可靠来源的字符串,那么这种计算就可能被滥用,从而对系统造成风险。
综上,当你在使用eval()
函数时,一定要注意对代码来源的可信度。