在Python 2中,exec是一个具有特殊语法的语句:exec code [in globals[, locals]].在Python 3exec中,现在是一个函数:exec(code, [, globals[, locals]]),并且Python 2语法将引发一个SyntaxError。
正如print从语句更改为函数一样,__future__还添加了导入。但是,没有from __future__ import exec_function,因为它不是必需的:Python 2中的exec语句也可以与看起来完全像execPython 3中的函数调用的语法一起使用。因此,您可以更改语句
exec 'code' exec 'code' in global_vars exec 'code' in global_vars, local_vars
到表格
exec('code') exec('code', global_vars) exec('code', global_vars, local_vars)
并且确保后者的形式在Python 2和Python 3中均能相同地工作。