python内置函数eval解析字符串并将其当做有效的表达式来求值并返回计算结果,由于eval不对表达式进行检查,因此存在安全漏洞,容易被不法人员利用,官方推荐使用ast.literal_eval来替代eval函数
eval(expression[, globals[, locals]])
表达式计算结果
exp = "3 + 4*5"
print(eval(exp)) # 23
exp是一个字符串,eval能够解析并执行它,eval的功能非常强大,只要表达式是合法的,就能执行。
def test():
print("执行函数")
exp = "test()"
eval(exp) # 执行函数
exp的内容是一个表达式,test() 调用执行函数test,eval对这种函数调用的表达式也可以解析并执行。
eval可以视作一种动态执行python代码的方法,在不提供固定编码的前提下,通过生成exp表达式然后用eval执行的方式动态执行python代码。
QQ交流群: 211426309