从代码角度分析网站怎么做,wordpress+附件丢失,WordPress如何获取logo,沧州百姓网免费发布信息网eval函数在Python中做数据类型的转换还是很有用的。它的作用就是把数据还原成它本身或者是能够转化成的数据类型。那么eval和ast.literal_val()的区别是什么呢#xff1f;本文将大家介绍关于Python中函数eval和ast.literal_eval区别的相关资料#xff0c;需要的朋友可以参考下… eval函数在Python中做数据类型的转换还是很有用的。它的作用就是把数据还原成它本身或者是能够转化成的数据类型。那么eval和ast.literal_val()的区别是什么呢本文将大家介绍关于Python中函数eval和ast.literal_eval区别的相关资料需要的朋友可以参考下。 前言 众所周知在Python中如果要将字符串型的list,tuple,dict转变成原有的类型呢 这个时候你自然会想到eval. eval函数在python中做数据类型的转换还是很有用的。它的作用就是把数据还原成它本身或者是能够转化成的数据类型.下面来看看示例代码 string list string tuple string dict 也就是说使用eval可以实现从元祖列表字典型的字符串到元祖列表字典的转换此外eval还可以对字符串型的输入直接计算。比如她会将11的计算串直接计算出结果。 从上面来看eval功能可谓非常强大即可以做string与list,tuple,dict之间的类型转换还可以做计算器使用更有甚者可以对她能解析的字符串都做处理而不顾忌可能带来的后果所以说eval强大的背后是巨大的安全隐患 比如说,用户恶意输入下面的字符串 open(rD://filename.txt, r).read() __import__(os).system(dir) __import__(os).system(rm -rf /etc/*) 那么eval就会不管三七二十一显示你电脑目录结构读取文件删除文件.....如果是格盘等更严重的操作她也会照做不误 所以这里就引出了另外一个安全处理方式ast.literal_eval.可以先看下stackoverflow及Python官方关于这个解释 stackoverflow Python官方文档 简单点说ast模块就是帮助Python应用来处理抽象的语法解析的。而该模块下的literal_eval()函数则会判断需要计算的内容计算后是不是合法的python类型如果是则进行运算否则就不进行运算。 比如说上面的计算操作及危险操作如果换成了ast.literal_eval() 都会拒绝执行。 报值错误不合法的字符串 而只会执行合法的Python类型从而大大降低系统的危险性 所以出于安全考虑对字符串进行类型转换的时候最好使用ast.literal_eval()函数! 总结 以上就是Python中关于eval函数与ast.literal_eval使用的区别介绍图文的详细内容更多请关注php中文网其它相关文章 转载于:https://www.cnblogs.com/wangbin2188/p/11240797.html