2. 动态执行Python

2.3 compile 函数

作用:

将代码字符串编译为字节码,供 eval() 或 exec() 执行。

适用场景:

提高重复执行的效率。节约编译时间。

函数

函数
说明
compile(source, filename, mode)
将代码字符串编译为字节码,供 eval() 或 exec() 执行。

示例

# compile函数示例

# 编译程序
prog = '''
x = 100
y = 200
z = x + y 
print('x:', x, 'y:', y, 'z', z)
'''
prog_obj = compile(prog, '<string>', 'exec')
exec(prog_obj)
# 编译表达式
expr = 'x + y'
expr_obj = compile(expr, '<string>', 'eval')
value = eval(expr_obj)
print('value:', value)

Python动态执行的优缺点

优点

  1. 可以根据当前状态,动态生成代码并运行,灵活性高。
  2. 适合实现插件系统、脚本扩展等需求。

缺点

  1. 安全风险。
  2. 性能较低。
  3. 调试困难。
  4. 维护成本高。
  5. 版本升级后兼容性测试困难。