Python eval()函数
发布时间:2020-12-17 17:00:26 所属栏目:Python 来源:网络整理
导读:描述: Python eval()函数:将字符串str当成有效的表达式来求值并返回计算结果。 语法: eval()函数 语法: Python eval(str) 参数: str -- 变量 返回值 返回计算结果 注意 强大的函数有代价,安全性是其最大的缺点。 想一想这种使用环境:需要用户输入一个表达式
描述: Python eval()函数:将字符串str当成有效的表达式来求值并返回计算结果。 语法: eval()函数语法: Python eval(str) 参数:
返回值 返回计算结果 注意 强大的函数有代价,安全性是其最大的缺点。 想一想这种使用环境:需要用户输入一个表达式,并求值。 如果用户恶意输入,例如: __import__('os').system('dir') 那么eval()之后,你会发现,当前目录文件都会展现在用户前面。 那么继续输入: open('文件名').read() 代码都给人看了。获取完毕,一条删除命令,文件消失。哭吧! 怎么避免安全问题? 1、自行写检查函数; 2、使用ast.literal_eval: 实例 以下实例展示了replace()函数的使用方法: Python #?-*-?coding:utf-8?-*- a?=?'My?first?test?string' b?=?'Another?test?string?that?i?have?defined' math_string?=?'3+4*2' expression_string?=?"a+'?'+b+'?tiger'" print?"math_string计算值",eval(math_string) #math_sting?=?"3+4*21" print?"math_string计算值",eval(math_string+"1") print?"expressiong_string计算的值",eval(expression_string) 以上实例输出结果如下: math_string计算值?11 math_string计算值?87 expressiong_string计算的值?My?first?test?string?Another?test?string?that?i?have?defined?tiger (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |