Python exec()内置函数 --执行python语句

exec() 函数用于动态执行储存在字符串或文件中的python代码,该函数的返回值是 None

格式及参数

1
exec(object[, globals[, locals]])

object:必须是字符串或代码对象

globals:可选,作为全局命名空间,必须是一个字典

locals:可选,作为局部命名空间,可以是任何映射对象;若 locals 省略则其默认值为 globals 字典

参考资料

实例(3.8.8)

字符串

如果是字符串,那么该字符串将被解析为一系列 Python 语句并执行(除非发生语法错误)

1
2
3
4
5
6
7
8
9
str = 'for i in range(3):print(i)'
print(exec(str))

''' 输出
0
1
2
None
'''

代码对象

如果是代码对象,它将被直接执行

abc.py 文件代码:

1
2
for i in range(3):
print(i)

执行代码:

1
2
3
4
5
6
7
8
with open('./abc.py', 'r') as f:
exec(f.read())

''' 输出
0
1
2
'''