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从sqlite读取并显示数据的方法
May 08 Python
Python之dict(或对象)与json之间的互相转化实例
Jun 05 Python
使用pandas对两个dataframe进行join的实例
Jun 08 Python
python中的不可变数据类型与可变数据类型详解
Sep 16 Python
python+opencv实现高斯平滑滤波
Jul 21 Python
对python中字典keys,values,items的使用详解
Feb 03 Python
基于python 将列表作为参数传入函数时的测试与理解
Jun 05 Python
python RSA加密的示例
Dec 09 Python
Pytorch - TORCH.NN.INIT 参数初始化的操作
Feb 27 Python
Python自动化测试PO模型封装过程详解
Jun 22 Python
Python Pandas模块实现数据的统计分析的方法
Jun 24 Python
Python中Selenium对Cookie的操作方法
Jul 09 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使用异或实现的加密解密实例
2013/09/04 PHP
PHP中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
php数组编码转换示例详解
2014/03/11 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
PHP5.5新特性之yield理解与用法实例分析
2019/01/11 PHP
PHP实现新型冠状病毒疫情实时图的实例
2020/02/04 PHP
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
JQuery EasyUI 对话框的使用方法
2010/10/24 Javascript
入门基础学习 ExtJS笔记(一)
2010/11/11 Javascript
jquery 学习之二 属性 文本与值(text,val)
2010/11/25 Javascript
Jquery弹出窗口插件 LeanModal的使用方法
2012/03/10 Javascript
JS实现根据出生年月计算年龄
2014/01/10 Javascript
jquery mobile动态添加元素之后不能正确渲染解决方法说明
2014/03/05 Javascript
jQuery级联操作绑定事件实例
2014/09/02 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
2015/03/03 Javascript
基于iscroll.js实现下拉刷新和上拉加载效果
2016/11/28 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
JavaScript对象的浅拷贝与深拷贝实例分析
2018/07/25 Javascript
从0到1构建vueSSR项目之node以及vue-cli3的配置
2019/03/07 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
python基础教程之对象和类的实际运用
2014/08/29 Python
使用Python的Flask框架实现视频的流媒体传输
2015/03/31 Python
Python 3.x 连接数据库示例(pymysql 方式)
2017/01/19 Python
python命令行解析之parse_known_args()函数和parse_args()使用区别介绍
2018/01/24 Python
Python多线程原理与用法详解
2018/08/20 Python
使用python自动追踪你的快递(物流推送邮箱)
2020/03/17 Python
英国女性时尚精品店:THE DRESSING ROOM
2018/05/23 全球购物
分布式数据库需要考虑哪些问题
2013/12/08 面试题
外贸业务员求职信范文
2013/12/12 职场文书
战友聚会邀请函
2014/01/18 职场文书
企业总经理职责
2014/02/02 职场文书
抄作业检讨书
2014/02/17 职场文书
投标授权委托书范文
2014/08/02 职场文书
经典导游欢迎词
2015/01/26 职场文书
2015年农村党员公开承诺事项
2015/04/28 职场文书
mysql 数据插入优化方法之concurrent_insert
2021/07/01 MySQL