400-685-0732 电话咨询定制营销方案
关注专业seo外包公司
SEO创新会
文军营销
大数据驱动  让营销不走弯路
首页  >   工具使用  >  python eval函数 python eval函数有是什么用

python eval函数 python eval函数有是什么用

在python程序语言编写的过程当中,有一些函数是我们经常可以看见的,但有些函数是比较罕见但确实会出现的,那今天小编就来说一说在日常使用过程当中,并不是经常常见的函数——pythoneval函数。

  pythoneval函数——eval函数的作用是什么

eval函数是强大的数码转换引擎,字符串经eval转换后得到一个javascript对象,

举简单例子:

vara=eval(“5″);等效于vara=5;

vara=eval(“’5′”);等效于vara=’5′;

varobj=eval(“({name:’cat’,color:’black’})”);等效于varobj={name:’cat’,color:’black’};

eval(“alert(‘helloworld!’);”);等效于alert(‘helloworld!’);

js的数据类型为弱类型,可以在定义的时候指定数据类型,也可以在运算过程中强制数据类型转换

一个对象经过eval转换后数据类型不确定,在相加过程中自动与其他数据类型一致

eval应用实例,如下:

后台传给前台一个Json数据如

{“id”:1,”name”:”zhangsan”,”age”:30,”address”:”beijing”}

前台这样写

function(returnedData,status){

varpeople=returnedData;

alert(people);

varid=people.id;

varname=people.name;

varage=people.age;

varaddress=people.address;

}

如上这样写得话,取到的returnedData是一个字符串而不是一个对象,所以下面取不到对象的属性

如果将varpeople=eval(“(“+returnedData+”)”);

即可将people转换成一个对象,也就取得对象的属性了

  pythoneval函数为何不常见

1、eval太神秘了,以至于很多人用错。所以不推荐使用。

比如这段代码你应该见过:

<imgsrc=”https://pic3.***.com/50/bf68046fed17de9b1e195e3d7fcb247f_hd.jpg”data-rawwidth=”632″data-rawheight=”136″class=”origin_imagezh-lightbox-thumb”width=”632″data-original=”https://pic3.***.com/bf68046fed17de9b1e195e3d7fcb247f_r.jpg”>

然而实际上,我们可以这样写:

<imgsrc=”https://pic3.***.com/50/0d2bb9e0fbb2e206fdf707ac20b9b943_hd.jpg”data-rawwidth=”642″data-rawheight=”132″class=”origin_imagezh-lightbox-thumb”width=”642″data-original=”https://pic3.***.com/0d2bb9e0fbb2e206fdf707ac20b9b943_r.jpg”>这并不是eval不好而是因为容易被用错。

eval只是一个普通的函数,只不过他有一个快速通道通向编译器,可以将string变成可执行的代码。有类似功能的还有Function,setInterval和setTimeout。

2、eval不容易调试。用chromeDev等调试工具无法打断点调试,所以麻烦的东西也是不推荐使用的…

3、说到性能问题,在旧的浏览器中如果你使用了eval,性能会下降10倍。在现代浏览器中有两种编译模式:fastpath和slowpath。fastpath是编译那些稳定和可预测(stableandpredictable)的代码。而明显的,eval不可预测,所以将会使用slowpath,所以会慢。

还有一个是,在使用类似于ClosureCompiler等压缩(混淆)代码时,使用eval会报错。

4、关于安全性,我们经常听到eval是魔鬼,他会引起XSS攻击,实际上,如果我们对信息源有足够的把握时,eval并不会引起很大的安全问题。而且不光是eval,其他方式也可能引起安全问题。比如:

莫名其妙给你注入一个<script src=””>标签,或者一段来历不明的JSON-P请求,再或者就是Ajax请求中的eval代码…

所以啊,只要你的信息源不安全,你的代码就不安全。不单单是因为eval引起的。

你用eval的时候会在意XSS的问题,你越在意就越出问题,出的多了,eval就成噩梦了。

5、效率问题是程序逻辑问题。对于一些有执行字符串代码需求的程序中,不用eval而用其他方式模拟反而会带来更大的开销。

以上就是有关pythoneval函数的所有内容,如果大家还想了解更多与之有关的信息,欢迎关注我们文军营销的官网,这是你还有更多精彩的内容等着你,不管你是查资料还是学习都能够找到相应的信息。

推荐阅读

如何把jpg转换成pdf 把jpg转换成pdf的办法 | 文军营销个条件时怎么做 excel表格制作 教程手把手教你excel表格制作 excel表格函数公式大全 excel五大常见函数公式 python eval函数 python eval函数有是什么用 ...excel表格函数公式大全 excel五大常见函数公式 | 文军营销excel表格当中有很多的函数公式,而且这些函数公式对于我们的工作以及学习当中都会...上一篇: python eval函数 python eval函数有是什么用 下一篇: excel表格制作 ...excel筛选快捷键 excel筛选快捷键是什么 | 文军营销多个条件时怎么做 excel表格制作 教程手把手教你excel表格制作 excel表格函数公式大全 excel五大常见函数公式 python eval函数 python eval函数有是什么用...excel恢复保存前数据 excel恢复保存前数据的方法是什么 | 文军营销筛选中有多个条件时怎么做 excel表格制作 教程手把手教你excel表格制作 excel表格函数公式大全 excel五大常见函数公式 python eval函数 python eval函数有是什么用 ...excel表格制作 教程手把手教你excel表格制作 | 文军营销筛选中有多个条件时怎么做 excel表格制作 教程手把手教你excel表格制作 excel表格函数公式大全 excel五大常见函数公式 python eval函数 python eval函数有是什么用 ...