Python中的exec、eval使用实例


Posted in Python onSeptember 23, 2014

通过exec可以执行动态Python代码,类似Javascript的eval功能;而Python中的eval函数可以计算Python表达式,并返回结果(exec不返回结果,print(eval("…"))打印None);

   

>>> exec("print(\"hello, world\")")

hello, world
>>> a = 1

>>> exec("a = 2")

>>> a

2

这里有个scope(命名空间,作用域)的概念,为了不破坏现在的scope,可以新建一个scope(一个字典)执行exec(Javascript没有此功能):

>>> scope = {}

>>> exec("a = 4", scope)

>>> a

2

>>> scope['a']

4

   

>>> scope.keys()

dict_keys(['a', '__builtins__'])

__builtins__包含了所有的内建函数和值;

而普通的{}不会包含__builtins__

>>> a = {}

>>> a.keys()

dict_keys([])

同exec一样,eval也可以使用命名空间:

>>> result = eval('2+3')

>>> result

5

>>> scope={}

>>> scope['a'] = 3

>>> scope['b'] = 4

>>> result = eval('a+b',scope)

>>> result

7
Python 相关文章推荐
python计算书页码的统计数字问题实例
Sep 26 Python
python求列表交集的方法汇总
Nov 10 Python
10个易被忽视但应掌握的Python基本用法
Apr 01 Python
python中numpy的矩阵、多维数组的用法
Feb 05 Python
Python Numpy 数组的初始化和基本操作
Mar 13 Python
PyTorch上实现卷积神经网络CNN的方法
Apr 28 Python
python3.x实现base64加密和解密
Mar 28 Python
python之MSE、MAE、RMSE的使用
Feb 24 Python
python利用Excel读取和存储测试数据完成接口自动化教程
Apr 30 Python
python3字符串输出常见面试题总结
Dec 01 Python
Python 实现PS滤镜中的径向模糊特效
Dec 03 Python
tensorflow2.0教程之Keras快速入门
Feb 20 Python
Python的高级Git库 Gittle
Sep 22 #Python
Python实现抓取网页并且解析的实例
Sep 20 #Python
跟老齐学Python之字典,你还记得吗?
Sep 20 #Python
跟老齐学Python之再深点,更懂list
Sep 20 #Python
跟老齐学Python之画圈还不简单吗?
Sep 20 #Python
跟老齐学Python之list和str比较
Sep 20 #Python
Python显示进度条的方法
Sep 20 #Python
You might like
有关JSON以及JSON在PHP中的应用
2010/04/09 PHP
利用PHP实现图片等比例放大和缩小的方法详解
2013/06/06 PHP
PHP中的一些常用函数收集
2015/05/26 PHP
php变量与数组相互转换的方法(extract与compact)
2016/12/02 PHP
基于CI(CodeIgniter)框架实现购物车功能的方法
2018/04/09 PHP
PHP addslashes()函数讲解
2019/02/03 PHP
laravel5.6实现数值转换
2019/10/23 PHP
ImageFlow可鼠标控制图片滚动
2008/01/30 Javascript
js 链式延迟执行DOME
2012/01/04 Javascript
jQuery简单实现日历的方法
2015/05/04 Javascript
在JavaScript的jQuery库中操作AJAX的方法讲解
2015/08/15 Javascript
JS实现可展开折叠层的鼠标拖曳效果
2015/10/09 Javascript
基于JavaScript实现带缩略图的轮播效果
2017/01/12 Javascript
Easyui Datagrid自定义按钮列(最后面的操作列)
2017/07/13 Javascript
setTimeout时间设置为0详细解析
2018/03/13 Javascript
深入浅析JS中的严格模式
2018/06/04 Javascript
如何解决vue2.0下IE浏览器白屏问题
2018/09/13 Javascript
javascript的this关键字详解
2019/05/20 Javascript
小程序实现录音功能
2020/09/22 Javascript
Python判断操作系统类型代码分享
2014/11/22 Python
Python3指定路径寻找符合匹配模式文件
2015/05/22 Python
Python开发如何在ubuntu 15.10 上配置vim
2016/01/25 Python
详解python的ORM中Pony用法
2018/02/09 Python
对python中的six.moves模块的下载函数urlretrieve详解
2018/12/19 Python
在Python中用GDAL实现矢量对栅格的切割实例
2020/03/11 Python
Bibloo奥地利:购买女装、男装、童装、鞋和配件
2018/10/18 全球购物
StubHub希腊:购买体育赛事、音乐会和剧院门票
2019/08/03 全球购物
大学生党课思想汇报
2013/12/29 职场文书
编辑找工作求职信分享
2014/01/03 职场文书
公司成立感言
2014/01/11 职场文书
高中军训广播稿
2014/01/14 职场文书
运动会闭幕式通讯稿
2015/07/18 职场文书
研究生毕业登记表的自我鉴定范文
2019/07/15 职场文书
JS如何实现基于websocket的多端桥接平台
2021/05/14 Javascript
go web 预防跨站脚本的实现方式
2021/06/11 Golang
React + Threejs + Swiper 实现全景图效果的完整代码
2021/06/28 Javascript