【发布时间】:2015-05-02 22:29:33
【问题描述】:
我想使用exec() 执行一个正确的 Python 程序,然后在执行后获取变量及其值。谷歌说我应该创建一个字典并在那里写下执行结果:exec(code_object) in variables。但不幸的是,这在 Python 3 中没有。
【问题讨论】:
标签: python exec python-3.3
我想使用exec() 执行一个正确的 Python 程序,然后在执行后获取变量及其值。谷歌说我应该创建一个字典并在那里写下执行结果:exec(code_object) in variables。但不幸的是,这在 Python 3 中没有。
【问题讨论】:
标签: python exec python-3.3
Python 3 中的代码应该是:
exec(code_object, variables)
这个语法也是Python 2 compatible。
exec(code_object) in variables
会编译并在 Python 3 中运行,但做一些与 Python 2 完全不同的事情——它将在当前范围内执行 code_object; exec 将返回 None;那么表达式None in variables 将评估False,因为None 不是variables 中的键;结果将被删除 - 因此既不会发生编译时错误,也不会发生运行时错误,除了 code_object 看到错误的范围。
【讨论】: