当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python compile()用法及代码示例


compile() 方法从源(普通字符串、字节字符串或 AST 对象)返回 Python 代码对象。

用法:

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=-1)

compile() 方法用于如果 Python 代码是字符串形式或者是 AST 对象,并且您想将其更改为代码对象。

compile() 方法返回的代码对象稍后可以使用以下方法调用:exec()eval(),它们将执行动态生成的 Python 代码。

参数:

  • source - 普通字符串、字节字符串或 AST 对象
  • filename - 从中读取代码的文件。如果不是从文件中读取的,您可以自己命名
  • mode- 任何一个exec或者eval或者single.
    • eval - 只接受一个表达式。
    • exec - 它可以采用包含 Python 语句、类和函数等的代码块。
    • single - 如果它由单个交互式语句组成
  • flags(可选)和dont_inherit(可选) - 控制哪些未来语句会影响源代码的编译。默认值:0
  • optimize(可选)- 编译器的优化级别。默认值 -1。

返回:

compile() 方法返回一个 Python 代码对象。

示例:compile() 如何工作?

codeInString = 'a = 5\nb=6\nsum=a+b\nprint("sum =",sum)'
codeObejct = compile(codeInString, 'sumstring', 'exec')

exec(codeObejct)

输出

sum = 11

这里,source 是普通字符串形式。 filenamesumstring 。并且,exec 模式稍后允许使用exec() 方法。

compile()方法将字符串转换为 Python 代码对象。然后使用执行代码对象exec()方法。

相关用法


注:本文由纯净天空筛选整理自 Python compile()。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。