2. 动态执行Python

2.1 eval 函数

什么是动态执行

动态执行(Dynamic Execution)是指在 运行时动态解析、编译并执行 Python 代码,而不是在编写代码时静态定义。

动态执行相关的内置函数:

  1. eval() —— 执行 单个表达式 并返回结果。
  2. exec() —— 执行 代码块(程序段),不返回结果。
  3. 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