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 不同对象比较大小示例探讨
Aug 21 Python
从零开始学Python第八周:详解网络编程基础(socket)
Dec 14 Python
python中urllib.unquote乱码的原因与解决方法
Apr 24 Python
Python微信库:itchat的用法详解
Aug 14 Python
python pygame模块编写飞机大战
Nov 20 Python
Python爬虫实现爬取百度百科词条功能实例
Apr 05 Python
20行python代码实现人脸识别
May 05 Python
windows上安装python3教程以及环境变量配置详解
Jul 18 Python
8段用于数据清洗Python代码(小结)
Oct 31 Python
Pandas时间序列:重采样及频率转换方式
Dec 26 Python
Python图像处理之图像拼接
Apr 28 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
May 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
基于数据库的在线人数,日访问量等统计
2006/10/09 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
详解PHP错误日志的获取方法
2015/07/20 PHP
PHP数据分析引擎计算余弦相似度算法示例
2017/08/08 PHP
PHP+Apache实现二级域名之间共享cookie的方法
2019/07/24 PHP
HR vs ForZe BO3 第二场 2.13
2021/03/10 DOTA
基于jquery自己写tab滑动门(通用版)
2012/10/30 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
JavaScript 对任意元素,自定义右键菜单的实现方法
2013/05/08 Javascript
js中indexof的用法详细解析
2013/12/24 Javascript
jQuery中:empty选择器用法实例
2014/12/30 Javascript
jQuery实现简单的间隔向上滚动效果
2015/03/09 Javascript
javascript实现鼠标放上后下边对应内容变换的效果
2015/08/06 Javascript
JS简单实现DIV相对于浏览器固定位置不变的方法
2016/06/17 Javascript
vue+Vue Router多级侧导航切换路由(页面)的实现代码
2018/12/20 Javascript
详解原生JS动态添加和删除类
2019/03/26 Javascript
详解JavaScript的数据类型以及数据类型的转换
2019/04/20 Javascript
微信小程序自定义tabBar在uni-app的适配详解
2019/09/30 Javascript
2020淘宝618理想生活列车自动领喵币js脚本的代码
2020/06/02 Javascript
[39:19]完美世界DOTA2联赛PWL S2 SZ vs LBZS 第二场 11.26
2020/11/30 DOTA
Python操作csv文件实例详解
2017/07/31 Python
python使用Pandas库提升项目的运行速度过程详解
2019/07/12 Python
django Admin文档生成器使用详解
2019/07/22 Python
python中hasattr()、getattr()、setattr()函数的使用
2019/08/16 Python
Python读取YAML文件过程详解
2019/12/30 Python
pandas中read_csv、rolling、expanding用法详解
2020/04/21 Python
Pytorch实现WGAN用于动漫头像生成
2021/03/04 Python
html5 Canvas实现图片旋转的示例
2018/01/15 HTML / CSS
印度化妆品购物网站:Nykaa
2018/07/22 全球购物
英国行业制服供应商:Alexandra
2019/09/14 全球购物
荣耀俄罗斯官网:HONOR俄罗斯
2020/10/31 全球购物
三八妇女节活动主持词
2014/03/17 职场文书
保安公司服务承诺书
2014/05/28 职场文书
现实表现材料范文
2014/12/23 职场文书
Ruby序列化和持久化存储 Marshal和Pstore介绍
2022/04/18 Ruby