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列表(list)常用操作方法小结
Feb 02 Python
python实现决策树C4.5算法详解(在ID3基础上改进)
May 31 Python
Python cookbook(数据结构与算法)对切片命名清除索引的方法
Mar 13 Python
opencv python 基于KNN的手写体识别的实例
Aug 03 Python
python pandas实现excel转为html格式的方法
Oct 23 Python
python实现杨氏矩阵查找
Mar 02 Python
详解pandas数据合并与重塑(pd.concat篇)
Jul 09 Python
flask框架路由常用定义方式总结
Jul 23 Python
基于python实现的百度音乐下载器python pyqt改进版(附代码)
Aug 05 Python
python GUI库图形界面开发之PyQt5窗口类QMainWindow详细使用方法
Feb 26 Python
Python猜数字算法题详解
Mar 01 Python
pycharm导入源码的具体步骤
Aug 04 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调用mysql数据 dbclass类
2011/05/07 PHP
php将mysql数据库整库导出生成sql文件的具体实现
2014/01/08 PHP
yii2中dropDownList实现二级和三级联动写法
2017/04/26 PHP
php实现映射操作实例详解
2019/10/02 PHP
Yii 实现数据加密和解密
2021/03/09 PHP
用jscript实现新建word文档
2007/06/15 Javascript
JavaScript 判断日期格式是否正确的实现代码
2011/07/04 Javascript
JavaScript中函数声明优先于变量声明的实例分析
2012/03/01 Javascript
javascript游戏开发之《三国志曹操传》零部件开发(二)人物行走的实现
2013/01/23 Javascript
javascript中的循环语句for语句深入理解
2014/04/04 Javascript
javascript实现当前页导航激活的方法
2015/02/27 Javascript
javascript中eval和with用法实例总结
2015/11/30 Javascript
如何在Linux上安装Node.js
2016/04/01 Javascript
实现JavaScript的组成----BOM和DOM详解
2016/05/18 Javascript
JS实现重新加载当前页面
2016/11/29 Javascript
那些精彩的JavaScript代码片段
2017/01/12 Javascript
微信小程序 封装http请求实例详解
2017/01/16 Javascript
VueJs组件prop验证简单介绍
2017/09/12 Javascript
详解vue 组件之间使用eventbus传值
2017/10/25 Javascript
JavaScript学习笔记之DOM操作实例分析
2019/01/08 Javascript
微信小程序实现的自定义分享功能示例
2019/02/12 Javascript
详解Python的Flask框架中的signals信号机制
2016/06/13 Python
Python使用re模块实现信息筛选的方法
2018/04/29 Python
Python实现随机漫步功能
2018/07/09 Python
如何运行.ipynb文件的图文讲解
2019/06/27 Python
Python爬取破解无线网络wifi密码过程解析
2019/09/17 Python
欧洲顶级体育电子商务网站:SportsShoes.com
2018/03/27 全球购物
英国豪华针织品牌John Smedley的在线销售商:The Outlet by John Smedley
2018/04/08 全球购物
美国电力供应商店/电气批发商:USESI
2018/10/12 全球购物
ORACLE十问
2015/04/20 面试题
中医药大学毕业生自荐信
2013/11/08 职场文书
管理科学大学生求职信
2013/11/13 职场文书
自我评价的范文
2014/02/02 职场文书
2014两会学习心得:榜样精神伴我行
2014/03/17 职场文书
违纪学生保证书
2015/02/27 职场文书
使用javascript解析二维码的三种方式
2021/11/11 Javascript