我知道
- 评估是一个
function
- 执行是一个
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中的语句?