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输出一个杨辉三角的例子
Jun 13 Python
简单介绍Python中的readline()方法的使用
May 24 Python
浅谈Python单向链表的实现
Dec 24 Python
python数据结构之链表的实例讲解
Jul 25 Python
Python爬虫爬取一个网页上的图片地址实例代码
Jan 16 Python
Python 获取指定文件夹下的目录和文件的实现
Aug 30 Python
Django 实现将图片转为Base64,然后使用json传输
Mar 27 Python
python读取图像矩阵文件并转换为向量实例
Jun 18 Python
Django启动时找不到mysqlclient问题解决方案
Nov 11 Python
安装python依赖包psycopg2来调用postgresql的操作
Jan 01 Python
python自然语言处理之字典树知识总结
Apr 25 Python
python基础之函数的定义和调用
Oct 24 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 时区的一点总结
2008/03/26 PHP
php 禁止页面缓存输出
2009/01/07 PHP
laravel 解决paginate查询多个字段报错的问题
2019/10/22 PHP
Javascript YUI 读码日记之 YAHOO.util.Dom - Part.3
2008/03/22 Javascript
js电信网通双线自动选择技巧
2008/11/18 Javascript
js关于精确计算和数值格式化以及直接引js文件
2014/01/28 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
微信小程序 WXML、WXSS 和JS介绍及详解
2016/10/08 Javascript
Vuex利用state保存新闻数据实例
2017/06/28 Javascript
详解Vue学习笔记进阶篇之列表过渡及其他
2017/07/17 Javascript
js字符限制(字符截取) 一个中文汉字算两个字符
2017/09/12 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
vue 实现单选框设置默认选中值
2019/11/07 Javascript
[10:42]Team Liquid Vs Newbee
2018/06/07 DOTA
Python学习笔记(一)(基础入门之环境搭建)
2014/06/05 Python
浅析Python多线程下的变量问题
2015/04/28 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
python3.6利用pyinstall打包py为exe的操作实例
2018/10/31 Python
Python静态类型检查新工具之pyright 使用指南
2019/04/26 Python
Python中使用__new__实现单例模式并解析
2019/06/25 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
2020/03/06 Python
python 给图像添加透明度(alpha通道)
2020/04/09 Python
python中的测试框架
2020/11/13 Python
Django中使用Celery的方法步骤
2020/12/07 Python
10个顶级Python实用库推荐
2021/03/04 Python
C#如何调用Windows程序打开一个文档
2014/12/26 面试题
校园会短篇的广播稿
2014/10/21 职场文书
2015年12.4全国法制宣传日活动总结
2015/03/24 职场文书
观后感格式
2015/06/19 职场文书
2016三严三实专题教育活动心得体会
2016/01/06 职场文书
如何设计高效合理的MySQL查询语句
2021/05/26 MySQL
python元组打包和解包过程详解
2021/08/02 Python
浅析python中特殊文件和特殊函数
2022/02/24 Python
CSS实现渐变色边框(Gradient borders)的5种方法
2022/03/25 HTML / CSS