【发布时间】:2013-01-05 12:57:05
【问题描述】:
可能重复:
What’s the difference between eval, exec, and compile in Python?
我知道
- eval 是
function - exec 是
statement
两者的简单用法是:
eval('1+2')
exec 'print 1+2'
但是还有其他的用法我看不懂。
-
使用变量来存储函数名,并使用该变量来存储函数名 调用函数
例如:def test(): print 'hello world' func = 'test' func = eval(func) func() # this will call test()我在
func = eval(func)之后输入(func)
它返回<type 'function'>
看了eval的文档,不知道eval为什么能做到 这个。 -
使用变量存储模块名称,并使用该变量导入模块。
例如。m = 'sys' exec "import " + m是不是这个原因:
import module_name是语句,不是表达式?
和:eval只计算一个表达式exec是否运行 str 中的语句?
【问题讨论】:
-
@avasal你好,我看过这篇文章,但是我的问题我不知道这两个例子,你可以看看。
-
@TankyWoo 要添加新行添加两个空格并从下一行开始写入。 :)
-
这个问题询问 eval/exec 的高级用法,在提议的副本和示例中甚至都没有提到它,所以它不是重复的,只是更具体。