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 相关文章推荐
5种Python单例模式的实现方式
Jan 14 Python
python更改已存在excel文件的方法
May 03 Python
Python银行系统实战源码
Oct 25 Python
深入了解如何基于Python读写Kafka
Dec 31 Python
如何通过python实现全排列
Feb 11 Python
使用python脚本自动生成K8S-YAML的方法示例
Jul 12 Python
python/golang 删除链表中的元素
Sep 14 Python
python实现猜拳游戏项目
Nov 30 Python
Python实现简单的猜单词
Jun 15 Python
浅谈Python实现opencv之图片色素的数值运算和逻辑运算
Jun 23 Python
图文详解matlab原始处理图像几何变换
Jul 09 Python
python中redis包操作数据库的教程
Apr 19 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
全国中波电台频率表
2020/03/11 无线电
PHP+SQL 注入攻击的技术实现以及预防办法
2011/01/27 PHP
php获取ip的三个属性区别介绍(HTTP_X_FORWARDED_FOR,HTTP_VIA,REMOTE_ADDR)
2012/09/23 PHP
用php实现选择排序的解决方法
2013/05/04 PHP
如何设置mysql允许外网访问
2013/06/04 PHP
解析smarty 截取字符串函数 truncate的用法介绍
2013/06/20 PHP
PHP实现检测客户端是否使用代理服务器及其匿名级别
2015/01/07 PHP
PHP+redis实现添加处理投票的方法
2015/11/14 PHP
php使用SAE原生Mail类实现各种类型邮件发送的方法
2016/10/10 PHP
php实现留言板功能(会话控制)
2017/05/23 PHP
PHP memcache在微信公众平台的应用方法示例
2017/09/13 PHP
JQUERY 实现窗口滚动搜索框停靠效果(类似滚动停靠)
2013/03/27 Javascript
浅谈javascript 函数内部属性
2015/01/21 Javascript
基于jQuery实现二级下拉菜单效果
2016/02/01 Javascript
jQuery基于扩展实现的倒计时效果
2016/05/14 Javascript
js添加绑定事件的方法
2016/05/15 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
详解vue.js组件化开发实践
2016/12/14 Javascript
完美解决node.js中使用https请求报CERT_UNTRUSTED的问题
2017/01/08 Javascript
js实现4个方向滚动的球
2017/03/06 Javascript
AngularJS封装$http.post()实例详解
2017/05/06 Javascript
vue-socket.io跨域问题有效解决方法
2020/02/11 Javascript
tornado捕获和处理404错误的方法
2014/02/26 Python
详解Python中for循环的使用
2015/04/14 Python
Python实现将目录中TXT合并成一个大TXT文件的方法
2015/07/15 Python
利用Django提供的ModelForm增删改数据的方法
2019/01/06 Python
Python3实现的回文数判断及罗马数字转整数算法示例
2019/03/27 Python
Python实现手机号自动判断男女性别(实例解析)
2019/12/22 Python
Python try except else使用详解
2021/01/12 Python
荷兰多品牌网上鞋店:Stoute Schoenen
2017/08/24 全球购物
美国伊甸园兄弟种子公司:Eden Brothers
2018/07/01 全球购物
Mankind美国/加拿大:英国领先的男士美容护发用品公司
2018/12/05 全球购物
初中生个人学习的自我评价
2013/12/04 职场文书
商场促销活动方案
2014/02/08 职场文书
springboot + mongodb 通过经纬度坐标匹配平面区域的方法
2021/11/01 MongoDB
golang操作redis的客户端包有多个比如redigo、go-redis
2022/04/14 Golang