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动态执行的优缺点
优点
- 可以根据当前状态,动态生成代码并运行,灵活性高。
- 适合实现插件系统、脚本扩展等需求。
缺点
- 安全风险。
- 性能较低。
- 调试困难。
- 维护成本高。
- 版本升级后兼容性测试困难。