2. 动态执行Python
2.1 eval 函数
什么是动态执行
动态执行(Dynamic Execution)是指在 运行时动态解析、编译并执行 Python 代码,而不是在编写代码时静态定义。
动态执行相关的内置函数:
- eval() —— 执行 单个表达式 并返回结果。
- exec() —— 执行 代码块(程序段),不返回结果。
- compile() —— 将代码编译为字节码,供 eval() 或 exec() 执行。
动态执行相关函数
函数
说明
eval(source, globals=None, locals=None)
source参数将作为一个 Python 表达式,使用 globals 和 locals 映射作为全局和局部命名空间被解析并求值。
exec(source, globals=None, locals=None)
source参数将作为一个 Python 程序,使用 globals 和 locals 映射作为全局和局部命名空间被解析并求值。
compile(source, filename, mode)
将代码字符串编译为字节码,供 eval() 或 exec() 执行。
eval()函数
作用:
执行一个 字符串形式的 Python 表达式,并返回计算结果。
适用场景:
计算简单的表达式、函数调用等。
示例
# eval函数示例
x = 100
y = 200
expr = 'x + y'
# print(eval(expr)) # 300
# print(eval(expr, {'x':10, 'y':20})) # 30
print(eval(expr, {'x':10, 'y':20}, {'x':1})) # 21