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 相关文章推荐
pip安装时ReadTimeoutError的解决方法
Jun 12 Python
python如何创建TCP服务端和客户端
Aug 26 Python
Python3数字求和的实例
Feb 19 Python
Python实现截取PDF文件中的几页代码实例
Mar 11 Python
Python面向对象程序设计构造函数和析构函数用法分析
Apr 12 Python
Python实现计算文件MD5和SHA1的方法示例
Jun 11 Python
Python寻找路径和查找文件路径的示例
Jul 10 Python
pycharm创建scrapy项目教程及遇到的坑解析
Aug 15 Python
快速解决jupyter启动卡死的问题
Apr 10 Python
解决PyCharm IDE环境下,执行unittest不生成测试报告的问题
Sep 03 Python
Python request post上传文件常见要点
Nov 20 Python
Python 内存管理机制全面分析
Jan 16 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
PHP 查找字符串常用函数介绍
2012/06/07 PHP
解析Ubuntu下crontab命令的用法
2013/06/24 PHP
php使用imagick模块实现图片缩放、裁剪、压缩示例
2014/04/17 PHP
php类常量用法实例分析
2015/07/09 PHP
php生成过去100年下拉列表的方法
2015/07/20 PHP
Twig模板引擎用法入门教程
2016/01/20 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
php使用FFmpeg接口获取视频的播放时长、码率、缩略图以及创建时间
2016/11/07 PHP
javascript字母大小写转换的4个函数详解
2014/05/09 Javascript
js实现仿百度汽车频道选择汽车图片展示实例
2015/05/06 Javascript
JavaScript中的对象与JSON
2015/07/03 Javascript
数据分析软件之FineReport教程:[5]参数界面JS(全)
2015/08/13 Javascript
jQuery EasyUI学习教程之datagrid点击列表头排序
2016/07/09 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
ajax实现动态下拉框示例
2017/01/10 Javascript
详解Vue爬坑之vuex初识
2017/06/14 Javascript
解决antd日期选择组件,添加value就无法点击下一年和下一月问题
2020/10/29 Javascript
JavaScript 实现轮播图特效的示例
2020/11/05 Javascript
python 简易计算器程序,代码就几行
2009/08/29 Python
python 动态获取当前运行的类名和函数名的方法
2014/04/15 Python
用PyQt进行Python图形界面的程序的开发的入门指引
2015/04/14 Python
Python实现冒泡排序的简单应用示例
2017/12/11 Python
python配置grpc环境
2019/01/01 Python
通过 Python 和 OpenCV 实现目标数量监控
2020/01/05 Python
Pycharm如何运行.py文件的方法步骤
2020/03/03 Python
keras得到每层的系数方式
2020/06/15 Python
python 使用递归的方式实现语义图片分割功能
2020/07/16 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
html5 http的轮询和Websocket原理
2018/10/19 HTML / CSS
Stella McCartney官网:成衣、包袋、香水、内衣、童装及Adidas系列
2018/12/20 全球购物
莫斯科隐形眼镜网上商店:Linzi
2019/07/22 全球购物
预备党员群众路线教育实践活动思想汇报2014
2014/10/25 职场文书
2016大学生社会实践心得体会范文
2016/01/14 职场文书
100句拼搏进取的名言警句,值得一读!
2019/10/07 职场文书
教你使用pyinstaller打包Python教程
2021/05/27 Python