Python中的exec、eval使用实例

通过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没有此功能):

复制代码 代码如下:

立即学习“Python免费学习笔记(深入)”;

>>> 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也可以使用命名空间:

复制代码 代码如下:

立即学习“Python免费学习笔记(深入)”;

>>> result = eval(‘2+3’)
>>> result
5
>>> scope={}
>>> scope[‘a’] = 3
>>> scope[‘b’] = 4
>>> result = eval(‘a+b’,scope)
>>> result
7

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2291071.html

(0)
上一篇 2025年2月28日 00:45:34
下一篇 2025年2月23日 18:19:24

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • Python的高级Git库 Gittle

    gittle是一个高级纯python git 库。构建在dulwich之上,提供了大部分的低层机制。 Install it pip install gittle 登录后复制 Examples : Clone a repository fro…

    编程技术 2025年2月28日
    200
  • Python多进程编程技术实例分析

    本文以实例形式分析了python多进程编程技术,有助于进一步python程序设计技巧。分享给大家供大家参考。具体分析如下: 一般来说,由于Python的线程有些限制,例如多线程不能充分利用多核CPU等问题,因此在Python中我们更倾向使用…

    编程技术 2025年2月28日
    200
  • Python专用方法与迭代机制实例分析

    本文实例讲述了python专用方法与迭代机制,分享给大家供大家参考之用。具体分析如下: 众所周知,Python 设计哲学是“优雅”、“明确”、“简单”,对于一件事只用一种最好的方法来做,而这种优雅在于背后很自然的隐藏了很多细节。比如对一些对…

    编程技术 2025年2月28日
    200
  • python中执行shell命令的几个方法小结

    最近有个需求就是页面上执行shell命令,第一想到的就是os.system, 复制代码 代码如下:os.system(‘cat /proc/cpuinfo’) 但是发现页面上打印的命令执行结果 0或者1,当然不满足需…

    编程技术 2025年2月28日
    200
  • Python threading多线程编程实例

    python 的多线程有两种实现方法: 函数,线程类 1.函数 调用 thread 模块中的 start_new_thread() 函数来创建线程,以线程函数的形式告诉线程该做什么 复制代码 代码如下: 立即学习“Python免费学习笔记(…

    编程技术 2025年2月28日
    200
  • Python显示进度条的方法

    本文实例讲述了python显示进度条的方法,是python程序设计中非常实用的技巧。分享给大家供大家参考。具体方法如下: 首先,进度条和一般的print区别在哪里呢? 答案就是print会输出一个,也就是换行符,这样光标移动到了下一行行首,…

    2025年2月28日
    200
  • Python中用Descriptor实现类级属性(Property)详解

    上篇文章简单介绍了python中描述器(descriptor)的概念和使用,有心的同学估计已经get√了该技能。本篇文章通过一个descriptor的使用场景再次给出一个案例,让不了解情况的同学可以更容易理解。 先说说decorator 这…

    编程技术 2025年2月28日
    200
  • Python实现的检测web服务器健康状况的小程序

    对web服务器做健康检查,一般我们都是用curl库(不管是php,perl的还是shell的),大致的方法一致: 复制代码 代码如下:curl -I -s www.qq.com  |head -1|awk ‘{ health =…

    2025年2月28日
    200
  • python写的一个squid访问日志分析的小程序

    这两周组里面几位想学习python,于是我们就创建了一个这样的环境和氛围来给大家学习。 昨天在群里,贴了一个需求,就是统计squid访问日志中ip 访问数和url的访问数并排序,不少同学都大体实现了相应的功能,我把我简单实现的贴出来,欢迎拍…

    2025年2月28日
    200
  • python里大整数相乘相关技巧指南

    问题 大整数相乘 思路说明 对于大整数计算,一般都要用某种方法转化,否则会溢出。但是python无此担忧了。 Python支持“无限精度”的整数,一般情况下不用考虑整数溢出的问题,而且Python Int类型与任意精度的Long整数类可以无…

    编程技术 2025年2月28日
    200

发表回复

登录后才能评论