Python内置函数——compile

compilecompile(source, filename, mode[, flags[, dont_inherit,[optimize]]])

1.这个函数用来编译一段字符串的源码,结果可以生成字节码或者AST(抽像语法树),

字节码可以使用函数exec()来执行,而AST可以使用eval()来继续编译。

2.参数source是一串字符串的源码,或者是AST对象数组。

3.参数filename是读取字符串的文件对象,

如果不是从文件里读取源码来编译,那么这里可以放一些用来标识这些代码的字符串。

4.参数mode是用来指明那种表示的源码类型;

如果是exec类型,表示这是一个序列语句,可以进行运行;

如果是eval类型,表示这是一个单一的表达式语句,可以用来计算相应的值出来;

如果是single类型,表示这是一个单一语句,采用交互模式执行,

在这种情况下,如果是一个表达式,一般会输出结果,而不是打印为None输出。

5.可选参数flags和dont_inherit是用来控制编译源码时的标志,

可以查看PEP236文档来了解这些参数,以及相关编译的说明。

如果两者使用缺省参数(也即两者都是零值),

在调用本函数编译时,主要使用代码中指明的编译特征来对待;

如果flags参数设置有值,而dont_inherit没有设置(即是零值),

那么编译代码时,不仅源码的编译特征起作用,而且flags指明的特征也起作用,相当两者的并集;

如果参数dont_inherit设置有值(即是非零值),

编译语句时只有参数flags指明的编译特征值起作用,即是不使用源码里指明的特征。

编译特征是按位图的方式设置到参数里,可以查看__future__。

6.可选参数optimize是用来指明编译器使用优化的等级;

缺省值是-1,表示使用命令行参数-O中获取的优化等级为准;

如果设置值为0(即是不用优化,__debug__是设置true),是没有优化;

如果设置值为1,assert语句被删除,__debug__设置为false;

如果设置值为2,除了设置值为1的功能之外,还会把代码里文档说明也删除掉,达到最佳优化结果。

7.本函数编译代码时,如果语法出错会返回SyntaxError;

如果代码包含一些空字节,则返回类型错误TypeError。

注意事项:

1.当采用single或eval类型编译时,

如果有多行代码,每行代码后面至少有一个换行符\,否则在code模块编译时就会提示编译的源码不完整错误。

在Python 3.2版本之后,允许输入Windows或Mac的换行符;

2.当采用exec模式时,不需要在每个行后面输入换行符;在这个版本之后增加了优化参数。In [16]: str = "for i in range(10): print(i)"

In [17]: c = compile(str,'','exec') #编译为字节代码对象

In [18]: exec(c)

0

1

2

3

4

5

6

7

8

9

In [19]: str = "3*x + 4*y"

In [20]: c = compile(str,'','eval') #编译为表达式

In [23]: x,y = 3,4

In [24]: eval(c)

Out[24]: 25

以上就是Python内置函数——compile的内容,更多相关内容请关注PHP中文网(www.gxlcms.com)!

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:php中文网

python内置函数用来返回序列中所有元素之和_Python内置函数——compile相关推荐

  1. python内置函数用来返回数值型序列中所有元素之和_Python内置函数______用来返回数值型序列中所有元素之和...

    [填空题]表达式 int(4**0.5) 的值为 [判断题]3+4j不是合法的Python表达式. [填空题]已知列表对象x = ['11', '2', '3'],则表达式 max(x) 的值为 [填 ...

  2. python内置函数可以返回数值型序列中所有元素之和_Python内置函数________________用来返回数值型序列中所有元素之和。...

    [单选题]表达式 ','.join('a     b  ccc\n\n\nddd     '.split()) 的值为______________. [单选题]表达式 'abcabcabc'.coun ...

  3. python内置函数用来返回数值型序列中所有元素之和_语句x = 3==3, 5执行结束后,变量x的值为_学小易找答案...

    [判断题]不可以在同一台计算机上安装多个Python版本. [填空题]表达式[1, 2, 3]*3的执行结果为 [填空题]使用切片操作在列表对象x的开始处增加一个元素3的代码为 [填空题]Python ...

  4. python内置函数可以返回数值型序列中所有元素之和_智慧职教: Python内置函数________________用来返回数值型序列中所有元素之和。...

    智慧职教: Python内置函数________________用来返回数值型序列中所有元素之和. 答:3, 中国大学MOOC: 叙事性是插画的核心,每一幅插画背后都有一个作者心中的故事,或唯美,或悲 ...

  5. python内置函数用来返回序列中的最小元素_1000道Python题库系列分享二(48道)

    1.10 pip list 1.11 对 1.12 错 1.13 错 1.14 错 1.15 对 1.16 错 1.17 对 本期题目: 2.1 表达式int('11111', 2)的值为______ ...

  6. python内置函数sum_Python内置函数sum____用来返回数值型序列中所有元素之和。

    [单选题]关于函数参数传递中,形参与实参的描述错误的是( ). [判断题]PythonModuleDocs是Python的帮助文档. [单选题]以下关于Python的说法中正确的是哪一项? [判断题] ...

  7. python内置函数返回序列中最大元素_Python 内置函数 ____________ 用来返回序列中的最大元素。_学小易找答案...

    [单选题]5. an official group of people who have joined together for a particular purpose [单选题]Excel 201 ...

  8. python内置函数返回序列中最大元素_Python之路(第八篇)Python内置函数、zip()、max()、min()...

    一.python内置函数 abs() 求绝对值 例子 print(abs(-2)) all() 把序列中每一个元素做布尔运算,如果全部都是true,就返回true, 但是如果是空字符串.空列表也返回t ...

  9. python内置函数用来返回序列中的最小元素_Python内置函数(43)——min

    英文文档: min(iterable, *[, key, default]) min(arg1, arg2, *args[, key]) Return the smallest item in an ...

  10. python中的内置函数返回元素_Python内置函数_________用来返回数值型序列中所有元素之和。...

    已知向量m=(3sinx4,1),n=(cosx4,cos2x4),记f(x)=m?n,(1)求f(x)的值域和单调递增区间:(2)在△ABC中,角A.B.C的 真空度=绝对压强-大气压强 () 在连 ...

最新文章

  1. Exchange 2010正式发布了
  2. Oracle:关于分布式数据库(创建数据库链路,创建触发器)
  3. Activity之间跳转的效果_overridePendingTransition
  4. 在使用angularjs过程,ng-repeat中track by的作用
  5. cat命令详解_好程序员Python培训之详解eval好与坏
  6. 释放囚犯(洛谷-P1622)
  7. CXF WebService 教程
  8. 五大特点_皮肤肤质五大分类及其特点
  9. hge引擎配置登录器教程_HGEM2引擎登录器列表格式TXT
  10. AMOS分析技术:模型的群组分析;AMOS如何对同一个模型分别用男性数据和女性数据拟合?
  11. R数据分析:样本量计算的底层逻辑与实操,pwr包
  12. vs未能加载项目文件。未能找到路径 c#笔记5
  13. 基于C++实现惊险刺激的Flappy Bird设计
  14. 接呀呀云实时语音SDK总结
  15. 【人工智能算法从图解入手】
  16. laravel 简单聊聊singleton的实现过程
  17. 阿里云轻量应用服务器从购买到Web环境搭建
  18. 关于日文系统的安装[转]
  19. C陷阱与缺陷 第3章 语义“陷阱” 3.4 避免“举偶法”
  20. menubar的相关用法

热门文章

  1. TeamTalk 服务器代码分析
  2. 用计算机从85加到98的和是,2018年职称计算机考试题库及答案
  3. c语言一维高斯滤波器,高斯滤波简介,高斯滤波性质及应用
  4. Python 中 appium 环境搭建
  5. Iphone 5s/iPad Air/iPad Mini 2 降级10.3.3
  6. 了解信息安全管理体系的基本思路
  7. [领卓教育]使用QT实现一个简单的离线词典
  8. abaqus2019安装教程_Xflow2019和Abaqus2019版本安装不成功的问题解决办法
  9. cesium雷达图_Cesium专栏-气象雷达动图(附源码下载)
  10. 计算机二级office试题构成,2016年计算机二级office题库及答案