ITPub博客

首页 > 应用开发 > > exec和eval方法,动态执行Python代码,真的会用吗?

exec和eval方法,动态执行Python代码,真的会用吗?

作者:u_151d1ef45539 时间:2019-11-18 13:56:10 0 删除 编辑

雷那编程 



使用exec,eval函数,动态执行Python代码片段

eval()函数

eval()函数执行一个Python字符串表达式,并能返回表达式结果

注意:该函数只能是单个表达式,不支持复杂的代码逻辑,例如赋值操作、循环语句等

函数定义:

eval(expression, globals, locals)

expression:必须,Python表达式字符串

globals:可选,dict结构,存放全局变量

locals:可选,dict结构,存放局部变量

返回值:表达式执行结果

使用示例:

exec()函数

可以动态执行一段Python代码,代码段是可以非常复杂

在Python2中,exec是一个关键字语句,而在Python3中,exec变成了一个函数,跟print一样

exec() 与 eval() 功能相似,三个参数含义和作用相近

函数定义:

exec(object, globals, locals)

参数说明:

object:必选,Python代码段字符串

globals:可选,dict结构,存放全局变量

locals:可选,dict结构,存放局部变量

exec函数没有返回值

eval()与exec()区别

exec()第一个参数是代码块,而eval()是一个表达式字符串

eval()可以返回表达式的值,exec()执行返回值是None

eval()只能接一个单一字符串表达式,exec()可以是复杂的代码逻辑

避免使用eval()、exec()

尽量避免使用eval()、exec(),使用该函数可能会引起“代码注入”的安全问题

最后

如果内容有误,欢迎评论区指正!

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69927053/viewspace-3154917/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2019-07-31

  • 博文量
    155
  • 访问量
    256