python内置函数exec支持动态执行python代码,传入exec函数的object实参可以是字符串,也可以是字节码对象。如果object实参是字符串则会被exec函数编译并执行,如果是字节码对象则会被直接执行。通常exec配合compile函数来使用。
exec(object[, globals[, locals]])
一旦提供了globals 和 locals, 代码执行起来就像嵌入到某个类定义中一样
无
object实参是字符串
exec("print('ok')") # ok
exec("4 + 5")
虽然字符串"4 + 5" 也能被exec执行,但并没有返回结果,这一点一定要注意
object实参是字节码
>>> exp = "3*3 + 7 + 8"
>>> code = compile(exp, '<string>', 'eval')
>>> code
<code object <module> at 0x2b9c88626ed0, file "<string>", line 1>
>>> eval(exp)
24
QQ交流群: 211426309