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)