跳到主要内容

Python compile() 函数

compile() 方法计算来自源对象的 Python 代码并返回它。

示例

codeInString = 'a = 8\nb=7\nsum=a+b\nprint("sum =",sum)'
codeObject = compile(codeInString, 'sumstring', 'exec')

exec(codeObject)

# 输出:sum = 15

compile() 语法

compile() 的语法是:

compile(source, filename, mode)

compile() 参数

compile() 方法接受以下参数:

  • source - 普通字符串,字节字符串或 AST 对象
  • filename - 代码将要读取的文件
  • mode - exec(可以执行包含语句、类和函数的代码块),eval(接受单个表达式)或 single(有单个交互式语句)

注意: compile() 方法还有其他可选参数如 flagsdont_inheritoptimize,但通常我们不使用它们。

compile() 返回值

compile() 方法返回

  • 一个 Python 对象代码

示例:Python compile()

codeInString = 'a = 5\nb=6\nmul=a*b\nprint("mul =",mul)'
codeObject = compile(codeInString, 'multiplyNumbers', 'exec')

exec(codeObject)

# 输出:mul = 30

在上面的示例中,source 参数是字符串变量 codeInString,其中包含 Python 对象代码:

'a = 5\nb=6\nmul=a*b\nprint("mul =",mul)'

我们使用 compile 方法来编译源代码:

compile(codeInString, 'sumstring', 'exec')

其中,

  • filenamesumstring
  • modeexec
  • 传递的变量是 codeInString

我们将 compile() 方法以 exec 模式赋值给 codeObject 变量。

exec() 方法执行 codeObject 变量,并返回结果 Python 对象。

推荐阅读: