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统计文件行数示例分享
Feb 21 Python
一则python3的简单爬虫代码
May 26 Python
用python + openpyxl处理excel2007文档思路以及心得
Jul 14 Python
python使用tkinter实现简单计算器
Jan 30 Python
Python如何抓取天猫商品详细信息及交易记录
Feb 23 Python
使用python 打开文件并做匹配处理的实例
Jan 02 Python
Python字符串处理的8招秘籍(小结)
Aug 13 Python
python 实现Flask中返回图片流给前端展示
Jan 09 Python
Jupyter notebook 启动闪退问题的解决
Apr 13 Python
详解pytorch中squeeze()和unsqueeze()函数介绍
Sep 03 Python
python 用opencv实现图像修复和图像金字塔
Nov 27 Python
Python Pandas list列表数据列拆分成多行的方法实现
Dec 14 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 强制性文件下载功能的函数代码(任意文件格式)
2010/05/26 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
php使用CURL伪造IP和来源实例详解
2015/01/15 PHP
利用PHP访问MySql数据库的逻辑操作以及增删改查的实例讲解
2017/08/30 PHP
javascript打印输出json实例
2013/11/11 Javascript
Javascript 按位与运算符 (&)使用介绍
2014/02/04 Javascript
一个Action如何调用两个不同的方法
2014/05/22 Javascript
js匿名函数的调用示例(形式多种多样)
2014/08/20 Javascript
JavaScript截取字符串的2个函数介绍
2014/08/27 Javascript
JavaScript学习笔记之定时器
2015/01/22 Javascript
JavaScript中的lastIndexOf()方法使用详解
2015/06/06 Javascript
6种javascript显示当前系统时间代码
2015/12/01 Javascript
JS实现n秒后自动跳转的两种方法
2020/11/30 Javascript
关于webpack代码拆分的解析
2017/07/20 Javascript
基于匀速运动的实例讲解(侧边栏,淡入淡出)
2017/10/17 Javascript
vue学习教程之带你一步步详细解析vue-cli
2017/12/26 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
2018/05/22 Javascript
小程序文字跑马灯效果
2018/12/28 Javascript
vue element 生成无线级左侧菜单的实现代码
2019/08/21 Javascript
基于ts的动态接口数据配置的详解
2019/12/18 Javascript
微信小程序使用 vant Dialog组件的正确方式
2020/02/21 Javascript
Python文件与文件夹常见基本操作总结
2016/09/19 Python
Python PyQt4实现QQ抽屉效果
2018/04/20 Python
python的格式化输出(format,%)实例详解
2018/06/01 Python
python中的json总结
2018/10/11 Python
python随机模块random使用方法详解
2020/02/14 Python
Python实现名片管理系统
2020/02/14 Python
Python如何将函数值赋给变量
2020/04/28 Python
深入理解css中vertical-align属性
2017/04/18 HTML / CSS
优秀大学生推荐信范文
2013/11/28 职场文书
思想专业自荐信范文
2013/12/25 职场文书
热爱祖国的演讲稿
2014/05/04 职场文书
教师党员公开承诺事项
2014/05/28 职场文书
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python
Nginx图片服务器配置之后图片访问404的问题解决
2022/03/21 Servers