广告
返回顶部
首页 > 资讯 > 后端开发 > Python >python compile、eval、
  • 640
分享到

python compile、eval、

pythoncompileeval 2023-01-31 02:01:21 640人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

compile函数    compile()函数允许程序员在运行时刻迅速生成代码对象,然后就可以用exec 语句或者内建函数eval()来执行这些对象或者对它们进行求值。一个很重要的观点是:exec 和eval()都可以执行字符串格式的py

  1. compile函数

    compile()函数允许程序员在运行时刻迅速生成代码对象,然后就可以用exec 语句或者内建函数eval()来执行这些对象或者对它们进行求值。一个很重要的观点是:exec 和eval()都可以执行字符串格式的python 代码。当执行字符串形式的代码时,每次都必须对这些代码进行字节编译处理。compile()函数提供了一次性字节代码预编译,以后每次调用的时候,都不用编译了。

    compile(source, filename, mode[, flags[, dont_inherit]])    

    第一参数代表了要编译的Python 代码。第二个字符串,虽然是必需的,但通常被置为空串。mode参数是个字符串,它用来表明代码对象的类型。有三个可能值:

    'eval' 可求值的表达式[和eval()一起使用]

    'single' 单一可执行语句[和exec或eval()一起使用]

    'exec' 可执行语句组[和exec一起使用]

可求值表达式

>>> eval_code = compile('100 + 200', '', 'eval')
>>> eval(eval_code)
300

单一可执行语句

>>> single_code = compile('print "Hello world!"', '', 'single')
>>> single_code
<code object <module> at 0xb76ebd10, file "", line 1>
>>> exec single_code
Hello world!
>>> eval(eval_code)
Hello world!

可执行语句组

>>> exec_code = compile("""
... req = input('Count how many numbers? ')
... for eachNum in range(req):
... print eachNum
... """, '', 'exec')
>>> exec exec_code
Count how many numbers? 6
0
1
2
3
4
5


2.eval函数

    eval()对表达式求值,后者可以为字符串或内建函数complie()创建的预编译代码对象。

    eval(source[, globals[, locals]])

    第二个和第三个参数,都为可选的,分别代表了全局和局部名字空间中的对象。如果给出这两个参数,globals 必须是个字典,locals可以是任意的映射对象,比如,一个实现了__getitem__()方法的对象。(在2.4 之前,local 必须是一个字典)如果都没给出这两个参数,分别默认为globals()和locals()返回的对象,如果只传入了一个全局字典,那么该字典也作为locals 传入。

>>> eval('100 + 200')
300


3.exec语句

    exec 语句执行代码对象或字符串形式的python 代码。

    exec obj

    被执行的对象(obj)可以只是原始的字符串,比如单一语句或是语句组,它们也可以预编译成

一个代码对象(分别用'single'和'exec"参数)。

>>> exec """
... x = 0
... print 'x is currently:', x
... while x < 5:
... x += 1
... print 'incrementing x to:', x
... """
x is currently: 0
incrementing x to: 1
incrementing x to: 2
incrementing x to: 3
incrementing x to: 4
incrementing x to: 5

    最后, exec 还可以接受有效的python 文件对象。如果我们用上面的多行代码创建一个叫xcount.py 的文件,那么也可以用下面的方法执行相同的代码

>>> f = open('xcount.py') # open the file
>>> exec f # execute the file
x is currently: 0
incrementing x to: 1
incrementing x to: 2
incrementing x to: 3
incrementing x to: 4
incrementing x to: 5

--结束END--

本文标题: python compile、eval、

本文链接: https://www.lsjlt.com/news/186470.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • python compile、eval、
    compile函数    compile()函数允许程序员在运行时刻迅速生成代码对象,然后就可以用exec 语句或者内建函数eval()来执行这些对象或者对它们进行求值。一个很重要的观点是:exec 和eval()都可以执行字符串格式的Py...
    99+
    2023-01-31
    python compile eval
  • Python cross compile
    之前一直想要把python程序移植到arm9开发板上,因为没有理解python的运行原理,所以一直瞎折腾,最后才知道需要先在arm9开发板上安装一个python的运行环境,这个需要交叉编译(cross compile)。于是搜各种资料。。。...
    99+
    2023-01-31
    Python cross compile
  • Python中字符串类型代码的执行函数——eval()、exec()和compile()详解
    目录字符串类型代码的执行eval()exec()compile()字符串类型代码的执行 字符串类型代码的执行函数有三个,都是Python的内置函数。 eval()执行字符串类型的代码...
    99+
    2023-02-07
    Python中字符串类型代码的执行函数 Python eval() exec()和compile()
  • Python 正则表达式:compile
    本文以匹配×××ID为例,介绍re模块的compile与match的用法复杂匹配 = re.compile(正则表达式): 将正则表达式实例化             +        re.match(要匹配的字符串): 从字符串开 头/...
    99+
    2023-01-31
    正则表达式 Python compile
  • python内置函数3-compile(
    Help on built-in function compile in module __builtin__:compile(...)    compile(source, filename, mode[, flags[, dont_in...
    99+
    2023-01-31
    函数 python compile
  • python的eval函数
    目录 1.eval函数的语法及用法 (1)语法:eval(expression) (2)作用:接收运行一个字符串表达式,返回表达式的结果值。 2.实例 (1)简单的计算用法 (2)与其它函数结合使用,比如结合input函数使用 (3)与wh...
    99+
    2023-09-23
    python 开发语言 经验分享 其他
  • Python-2 eval函数
    x = 1result = "x+1"result = eval(result)print(result)》》2 Python3中字符串不能计算结果,eval函数将字符串当成有效Python表达式来求值,并返回计算结果。 与之对应的repr...
    99+
    2023-01-31
    函数 Python eval
  • python之exec,eval,exe
    1.exec exec语句将字符串str当成有效Python代码来执行.提供给exec的代码的名称空间和exec语句的名称空间相同.exec语句用来执行储存在字符串或文件中的Python语句。例如,我们可以在运行时生成一个包含Python...
    99+
    2023-01-31
    exec python exe
  • Python的compile函数怎么用
    今天小编给大家分享一下Python的compile函数怎么用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。实例>>...
    99+
    2023-06-08
  • python中eval怎么用
    这篇文章将为大家详细讲解有关python中eval怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。python中eval的用法:将字符串str当成有效的表达式来求值并返回计算结果,语法为【eval(s...
    99+
    2023-06-06
  • 【Python系列】eval 函数
    文章目录 1. 基本概念2. 使用举例3. eval 函数运用—— 计算器4. 不要滥用 eval() 1. 基本概念 eval() 是 python 中功能非常强大的一个函数将字符串当成...
    99+
    2023-09-06
    其他
  • python中compile的作用有哪些
    在Python中,compile函数的作用有以下几种:1. 将字符串形式的源代码编译为可执行代码。编译后的代码可以使用exec函数执...
    99+
    2023-09-26
    python compile
  • python编译表达式方法compile
      re包含一些模块级函数,用于处理作为文本字符串的正则表达式,不过对于程序频繁使用的表达式,编译这些表达式会更为高效。compile()函数会把一个表达式字符串转换为一个RegexObject。   import re   regexes...
    99+
    2023-01-31
    表达式 方法 python
  • eval在python中是什么
    eval在python中是一个内置函数,用于将字符串作为代码进行解析和执行,并返回执行结果。由于"eval"函数可以执行任意的Python代码,因此在使用"eval"函数时需要谨慎考虑安全性问题,如果...
    99+
    2023-08-08
  • Python的compile函数语法是什么
    这篇文章主要介绍“Python的compile函数语法是什么”,在日常操作中,相信很多人在Python的compile函数语法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python的compile函...
    99+
    2023-06-08
  • Python中eval()函数的使用
    今天给大家分享一下Python中的eval()函数,如果感觉博主的文章还不错的话,希望大家点赞支持一下博主 文章目录 eval()函数语法实例实例1实例2实例3 eval()函...
    99+
    2023-10-23
    python
  • python的eval函数怎么用
    python的eval函数操作方法示例:1、打开编辑器pycharm。2、新建一个字符串。3、通过eval函数运行字符串中的表达式并将结果打印出来。4、在输出窗口查看表达式的输出结果。python中eval函数的作用是输出传入的字符串表达式...
    99+
    2022-10-22
  • python中eval的用法示例
    python中eval是一个内置函数,它主要是用来将字符串str当成有效的表达式来求值并返回计算结果,比如变量赋值时,等号右边的表示是写成字符串的格式,返回值就是这个表达式的结果;它还可以把list、tuple、dict 和 string等...
    99+
    2022-10-05
  • 怎么使用Python eval函数
    这篇文章主要介绍“怎么使用Python eval函数”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“怎么使用Python eval函数”文章能帮助大家解决问题。Python 的 eval()我们可以使...
    99+
    2023-07-06
  • Python的eval()函数怎么用
    这篇文章主要介绍“Python的eval()函数怎么用”,在日常操作中,相信很多人在Python的eval()函数怎么用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python的eval()函数怎么用”的疑...
    99+
    2023-06-26
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作