python内置函数eval详解

eval函数功能作用

python内置函数eval解析字符串并将其当做有效的表达式来求值并返回计算结果,由于eval不对表达式进行检查,因此存在安全漏洞,容易被不法人员利用,官方推荐使用ast.literal_eval来替代eval函数

eval函数语法

eval(expression[, globals[, locals]])

参数

  • 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

加入知识星球, 每天收获更多精彩内容

分享日常研究的python技术和遇到的问题及解决方案