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类方法__init__和__del__构造、析构过程分析
Mar 06 Python
Python基于回溯法子集树模板解决0-1背包问题实例
Sep 02 Python
python中实现指定时间调用函数示例代码
Sep 08 Python
Python 列表理解及使用方法
Oct 27 Python
pandas 条件搜索返回列表的方法
Oct 30 Python
python生成九宫格图片
Nov 19 Python
Linux CentOS Python开发环境搭建教程
Nov 28 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
Python迷宫生成和迷宫破解算法实例
Dec 24 Python
pytorch之添加BN的实现
Jan 06 Python
python基于event实现线程间通信控制
Jan 13 Python
pycharm2021激活码使用教程(永久激活亲测可用)
Mar 30 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
深入了解php4(1)--回到未来
2006/10/09 PHP
js中arguments的用法(实例讲解)
2013/11/30 Javascript
利用js动态添加删除table行的示例代码
2013/12/16 Javascript
通过遮罩层实现浮层DIV登录的js代码
2014/02/07 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
Three.js快速入门教程
2016/09/09 Javascript
详解vue-cli + webpack 多页面实例配置优化方法
2017/07/13 Javascript
JavaScript中递归实现的方法及其区别
2017/09/12 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
Vue集成Iframe页面的方法示例
2017/12/12 Javascript
基于vue监听滚动事件实现锚点链接平滑滚动的方法
2018/01/17 Javascript
jQuery 实现倒计时天,时,分,秒功能
2018/07/31 jQuery
webpack4.x开发环境配置详解
2018/08/04 Javascript
jquery实现动态添加附件功能
2018/10/23 jQuery
详解js获取video任意时间的画面截图
2019/04/17 Javascript
ES6中异步对象Promise用法详解
2019/07/31 Javascript
详解如何在Vue项目中发送jsonp请求
2019/10/25 Javascript
[01:18:36]LGD vs VP Supermajor 败者组决赛 BO3 第一场 6.10
2018/07/04 DOTA
[46:44]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第二场 3月7日
2021/03/11 DOTA
Pandas实现数据类型转换的一些小技巧汇总
2018/05/07 Python
Python实现数据结构线性链表(单链表)算法示例
2019/05/04 Python
PyQt5的安装配置过程,将ui文件转为py文件后显示窗口的实例
2019/06/19 Python
Python错误的处理方法
2020/06/23 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
python rsa-oaep加密的示例代码
2020/09/23 Python
CSS3 transforms应用于背景图像的解决方法
2019/04/16 HTML / CSS
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
加拿大品牌鞋包连锁店:Little Burgundy
2021/02/28 全球购物
幼儿园中班上学期评语
2014/04/18 职场文书
关于青春的演讲稿三分钟
2014/08/22 职场文书
教师学习三严三实心得体会
2014/10/13 职场文书
2015年市场部工作总结
2015/04/30 职场文书
全国法制宣传日活动总结
2015/05/05 职场文书
风之谷观后感
2015/06/11 职场文书
谁动了我的奶酪读书笔记
2015/06/30 职场文书
幼儿园班级管理心得体会
2016/01/07 职场文书