2. 动态执行Python

2.2 exec 函数

exec()函数

作用:

执行 字符串形式的 Python 代码块(如 if、for、def),只返回None。

适用场景:

动态执行多行代码、定义函数、修改变量等。

函数

函数
说明
exec(source, globals=None, locals=None)
source参数将作为一个 Python 程序,使用 globals 和 locals 映射作为全局和局部命名空间被解析并求值。

示例

# exec函数示例

prog = '''
x = 100
y = 200
z = x + y
print('x:', x, 'y:', y, 'z:', z)
'''

# value = exec(prog)  # 当前模块内执行
# print('value:', None)  # None
# print(x, y, z)
# glb = {}
# exec(prog, glb)  # glb环境内执行
# print("全局字典:", glb)
loc = {}
glb = {}
exec(prog, glb, loc)  # 在全局为gbl, 局部为loc的函数内部执行
print("全局字典:", glb)
print("局部字典:", loc)