exec 和eval()都可以执行字符串格式的Python 代码。当执行字符串形式的代码时,每次都必须对这些代码进行字节编译处理。compile()函数提供了一次性字节代码预编译,以后每次调用的时候,都不用编译了。
compile(source, filename, mode[, flags[, dont_inherit]])

参数 描述
source 要变异的python代码
filename 必须,设为空字符串
mode 有三种含义:

mode的含义
‘eval’ 可求值的表达式[和eval()一起使用]
‘single’ 单一可执行语句[和exec或eval()一起使用]
‘exec’ 可执行语句组[和exec一起使用]

eval_code = compile('1+1', '', 'eval')
eval(eval_code)single_code = compile('1+1', '', 'single')
eval(single_code)
exec(single_code)exec_code = compile("""
for i in range(4):print(i)
""",'','exec')
exec(exec_code)

参考:
https://cloud.tencent.com/developer/article/1569436
https://cloud.tencent.com/developer/article/1569436

python compile相关推荐

  1. python compile正则_Python 正则表达式:compile,match

    本文以匹配×××ID为例,介绍re模块的compile与match的用法 复杂匹配 = re.compile(正则表达式): 将正则表达式实例化 + re.match(要匹配的字符串): 从字符串开 ...

  2. python compile函数_python 内置函数 compile()

    python 内置函数 compile() 这个函数用来编译一段字符串的源码,结果可以生成字节码或者AST(抽像语法树),字节码可以使用函数exec()来执行,而AST可以使用eval()来继续编译. ...

  3. python compile正则_Python 正则表达式:compile

    本文以匹配×××ID为例,介绍re模块的compile与match的用法 复杂匹配 = re.compile(正则表达式): 将正则表达式实例化 + re.match(要匹配的字符串): 从字符串开 ...

  4. python里compile的作用_Python代码中compile()函数具有哪些功能呢?

    摘要: 下文讲述Python代码中compile()函数的功能说明,如下所示: compile()函数功能说明 compile()函数功能: 用于将一个字符串编译为字节代码 compile()函数语法 ...

  5. [转载] python内置函数 compile()

    参考链接: Python compile() 描述 compile() 函数将一个字符串编译为字节代码. 语法 以下是 compile() 方法的语法: compile(source, filenam ...

  6. python中compile()_Python compile() 函数

    Python  compile() 函数 描述 compile() 函数将一个字符串编译为字节代码. 语法 以下是 compile() 方法的语法:compile(source, filename,  ...

  7. Python 内部:可调用对象是如何工作的

    [这篇文章所描述的 Python 版本是 3.x,更确切地说,是 CPython 3.3 alpha.] 在 Python 中,可调用对象 (callable) 的概念是十分基本的.当我们说什么东西是 ...

  8. python打包二进制文件(pyd\dll\exe)

    安装环境 pip install cython pip install pyinstaller 单个文件 编写文件compile.py from distutils.core import setup ...

  9. python解释器详解_浅析Python解释器的设计(一)

    一些铺垫(扯淡) 历史上,在Python 2.4以及之前的版本,py代码的执行,也就是从源码到bytecode分为两步: 解析py源码成为分析树 (Parser/pgen.c)基于分析树优化缩减byt ...

最新文章

  1. 算法设计思想(3)— 迭代法
  2. day26 re正则表达式
  3. 飞思卡尔智能车iar工程常见问题
  4. [openmp]使用嵌套互斥锁锁定变量
  5. 8年程序员210天没找到工作,小公司老板:降薪5千,爱来不来
  6. [j2me]手机也可以玩播客(Podcast)! Geek开发说明[开源]
  7. c# 简单的科学计算
  8. rfid 标签内存_RFID有源与无源的区别与联系
  9. ASP.NET Web API 路由 (上)
  10. Python 实现数据结构中的单链表,循环单链表,双链表
  11. 快速部署PostgreSQL
  12. 华为手机asph啥机型_2020年最值得买大品牌手机盘点:华为vivo等五款机型入围
  13. XXXfragment that is not a fragment错误,fragment认不出来
  14. 隐藏在计算机网卡怎样删除,卸载电脑中隐藏虚拟网卡设备的解决方法
  15. Chrome浏览器安装Axure插件
  16. 解决VS 2017/2019社区版无法登陆的方法
  17. 老大,不好了,内存泄漏了!
  18. 安装VMware,出现没有虚拟网络适配器的问题
  19. 空间句法软件sDNA安装教程及加载到ArcGIS方法
  20. 区块链服务网络(BSN)技术详解

热门文章

  1. 9-算法 kmp算法
  2. linux 查找文件 mysql数据库_Linux下MySQL数据库目录多了好多文件
  3. JavaScript获取本机浏览器UA助力Python爬取糗事百科首页
  4. Python使用OpenCV+pillow提取AVI视频中关键帧图像
  5. Python两种方法求解登楼梯问题(京东2016笔试题)
  6. Python分离GIF动画成为多帧图像
  7. centos如何安装数据库mysql
  8. php redis官方网站,PHP-redis中文文档介绍
  9. 复试复旦大学计算机博士,【华慧推荐】2018年复旦大学博士面试成功经验分享...
  10. java中设置按钮随窗口变化_java JLabel 标签内容如何随着窗口的变化而变化