python神奇函数之eval()学习

目录:

1.python的eval函数

2.python中eval()函数的用法讲解

3.python3 eval函数

4.python eval函数用法

5.python eval函数的作用

6.python eval函数源码

7.python语言eval函数

8.python中eval()函数的用法

9.python中eval函数用法

10.python中eval函数怎么用

1.python的eval函数

本文首发地址:https://yishuihancheng.blog.csdn.net/article/details/72640276欢迎关注我的博客【Together_CZ】,我是沂水寒城。

2.python中eval()函数的用法讲解

python中有很多内置的很有用的工具函数,熟练地使用这些小工具绝对可以帮助你在工作中达到事半功倍的效果,今天由于需要用到了eval()函数,这个函数其实之前就用过了但是由于最近一直忙于看论文和方向上的一些其他的事,这个东西也就慢慢忘掉了,今天要用,索性直接再学一下,这里就作为是学习的记录了。

3.python3 eval函数

eval()官方文档里面给出来的功能解释是:将字符串string对象转化为有效的表达式参与求值运算返回计算结果语法上:调用的是:eval(expression,globals=None, locals=None)返回的是计算结果

4.python eval函数用法

其中: expression是一个参与计算的python表达式 globals是可选的参数,如果设置属性不为None的话,就必须是dictionary对象了 locals也是一个可选的对象,如果设置属性不为None的话,可以是任何map对象了

5.python eval函数的作用

python是用命名空间来记录变量的轨迹的,命名空间是一个dictionary,键是变量名,值是变量值当一行代码要使用变量 x 的值时,Python 会到所有可用的名字空间去查找变量,按照如下顺序:1)局部名字空间 – 特指当前函数或类的方法。

6.python eval函数源码

如果函数定义了一个局部变量 x, 或一个参数 x,Python 将使用它,然后停止搜索2)全局名字空间 – 特指当前的模块如果模块定义了一个名为 x 的变量,函数或类,Python 将使用它然后停止搜索。

7.python语言eval函数

3)内置名字空间 – 对每个模块都是全局的作为最后的尝试,Python 将假设 x 是内置函数或变量python的全局名字空间存储在一个叫globals()的dict对象中;局部名字空间存储在一个叫locals()的dict对象中。

8.python中eval()函数的用法

我们可以用print (locals())来查看该函数体内的所有变量名和变量值下面简单演示一下eval()函数的使用:#!usr/bin/env python #encoding:utf-8 import math def eval_test(): l=[1,2,3,4,[5,6,7,8,9]] d=”{a:123,b:456,c:789}” t=([1,3,5],[5,6,7,8,9],[123,456,789]) print ————————–转化开始——————————– print type(l), type(eval(l)) print type(d), type(eval(d)) print type(t), type(eval(t)) if __name__==”__main__”: eval_test()

9.python中eval函数用法

测试结果输出如下:————————–转化开始——————————– [Finished in 0.2s]

10.python中eval函数怎么用

上面简单演示的是eval在字符串对象和list、dictinoary、tuple对象之间的转换作用众所周知:eval()的确是一个很便捷的工具,但是便捷使用不当的同时也会造成严重的安全问题,不少的文章和博客都对eval()的安全性进行了相关的分析,在这里我就不多说了,文章最后会给出一些不错的参考资料,感兴趣的话可以看一下。

如何来避免eval()带来的安全性问题呢?在这里给出两点建议:1、自行写检查函数;2、使用ast.literal_eval:自行查看DOCUMENT

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
新闻快讯

深度辨析 Python 的 eval() 与 exec()

2024-6-12 13:53:18

新闻快讯

python中缩进是什么

2024-6-12 14:21:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
有新私信 私信列表
搜索