Python compile() Function

Python3 内置函数Python3 Built-in Functions


compile()It is a built-in function in Python used to compile source code into a code object.

The compiled code object can beexec()oreval()executed.compile()It is mainly used for code optimization, dynamic execution, and precompiling common code.

Glossary: compile 意为"编译",将源代码转换为可执行代码。


Basic Syntax and Parameters

Syntax Format

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

Parameter Description

  • Parameter source:
    • Type: string or AST object
    • Description: The source code to compile.
  • Parameter filename:
    • Type: string
    • Description: The name of the code source, usually set to the source file name.
  • Parameter mode:
    • Type: string
    • Description: Compilation mode,'exec'(statement block),'eval'(expression),'single'(single statement).

Function Description

  • Return Value: Returns a code object.

Examples

Example 1: Basic Usage

Example

# Compile expression
code = compile("1 + 2", "<string>", "eval")
result = eval(code)
print(result)  # Output: 3

# Compile statement block
code = compile("print('Hello')", "<string>", "exec")
exec(code)  # Output: Hello

# Compile multi-line code
code = compile("""
x = 10
y = 20
result = x + y
"""
, "<string>", "exec")
exec(code)
print(result)  # Output: 30

Run result:

3
Hello
30

Code analysis:

  1. mode='eval' is used for a single expression.
  2. mode='exec' is used for statement blocks.

Example 2: Dynamic Code Execution

Example

# Code entered by the user
user_code = "for i in range(5): print(i, end=' ')"
code = compile(user_code, "<user>", "exec")
exec(code)  # Output: 0 1 2 3 4

# Use compile to precompile for better performance
import time
code_str = "sum(range(1000))"
compiled = compile(code_str, "<string>", "eval")

start = time.time()
for _ in range(10000):
    eval(compiled)
print(fAfter compilation: {time.time() - start:.4f} seconds)

Run result:

compile() can precompile code to improve execution efficiency.

compile()It is very useful in scenarios of dynamic code generation and execution.


Python3 内置函数Python3 Built-in Functions


Other Extensions