当前位置:
首页 > Python基础教程 >
-
Python eval()函数
Python eval()
参数说明
The eval() takes three parameters:
- expression - this string as parsed and evaluated as a Python expression
- globals (optional) - a dictionary
- locals (optional)- a mapping object. Dictionary is the standard and commonly used mapping type in Python.
作用
将字符串参数当作Python代码执行,并返回执行结果。官方文档是这样说的:
The expression argument is parsed and evaluated as a Python expression
例子
In [1]: s = 'abc'
In [1]: s = 'abc'
In [2]: str(s)
Out[2]: 'abc'
In [7]: eval('x')
---------------------------------------------------------------------------
NameError Traceback (most recent call last)
<ipython-input-7-e5b9369fbf53> in <module>()
----> 1 eval('x')
<string> in <module>()
NameError: name 'x' is not defined
In [8]: eval('s')
Out[8]: 'abc'
字符串 s 已经定义过,执行没问题;x未定义,所以报错
疑惑
这个东西存在的意义?在stackoverflow看到了一个例子:
>>> input('Enter a number: ')
Enter a number: 3
>>> '3'
>>> input('Enter a number: ')
Enter a number: 1+1
'1+1'
>>> eval(input('Enter a number: '))
Enter a number: 1+1
2
>>>
>>> eval(input('Enter a number: '))
Enter a number: 3.14
3.14
这样区别就很明显了吧,上面的接收到的是str,下面经过eval处理后,变成了float。
注意
- 既然能执行字符串,那os.system("rm -rf /")肯定也可以了;所以需要注意下
- 另外两个参数的用法可见参考2
参考
https://stackoverflow.com/questions/9383740/what-does-pythons-eval-do
https://www.cnblogs.com/Xuuuuuu/p/10127029.html
https://www.programiz.com/python-programming/methods/built-in/eval
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式