Python中的exec、eval使用实例

作者:iCode0410 时间:2022-07-05 21:01:41 

通过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,exec,eval
0
投稿

猜你喜欢

  • php将12小时制转换成24小时制的方法

    2023-11-21 15:56:08
  • Oracle数据库逻辑备份的SH文件

    2010-07-27 13:26:00
  • PHP与Web页面交互操作实例分析

    2023-09-05 14:43:16
  • python实现的分析并统计nginx日志数据功能示例

    2023-07-30 20:08:15
  • 浅谈web分析

    2008-12-02 15:52:00
  • Python pexpect模块及shell脚本except原理解析

    2022-11-10 18:52:04
  • 在Asp程序中取得表单所有内容的方法

    2010-04-24 16:07:00
  • 当标题不能显示完整的时候

    2007-11-20 13:23:00
  • Python decorator拦截器代码实例解析

    2022-04-07 11:03:47
  • 微信小程序wxml列表渲染原理解析

    2023-07-17 14:28:08
  • mysql到oracle的移植

    2011-01-29 16:23:00
  • PHP与MySQL开发中页面乱码的产生与解决

    2023-10-03 04:10:08
  • 网页对联广告代码效果大全

    2007-10-25 23:16:00
  • Oracle 数据库中创建合理的数据库索引

    2009-07-02 12:31:00
  • 详解Go语言Slice作为函数参数的使用

    2023-07-16 11:30:20
  • 编写一个JS组件来说说call和apply的用法

    2008-11-23 17:11:00
  • 使用css给图片添加阴影入门篇

    2009-07-06 14:38:00
  • 设计的商业价值

    2009-08-13 14:43:00
  • MySQL表设计优化与索引 (六)

    2010-10-25 19:53:00
  • 深入理解Python装饰器

    2023-11-05 13:01:43
  • asp之家 网络编程 m.aspxhome.com