使用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(),使用该函数可能会引起“代码注入”的安全问题
最后
如果内容有误,欢迎评论区指正!
喜欢我的朋友们,麻烦点一波关注,谢谢!
閱讀更多 雷那編程 的文章