0

我在python中有以下功能:

def foo():
    print 1 
    return 1

在外壳中,我运行

foo()

我得到

1
1

我应该这样做。但是当我在 shell 中运行以下命令时

exec('foo')

我什么都得不到?为什么?

这是一个更大问题的稀释版本。

4

1 回答 1

1

您仅引用函数名称。添加括号以实际调用该函数:

exec('foo()')

这将打印1;返回值被丢弃,因为没有任何东西捕获它。您可以添加额外的打印语句来显示返回值:

exec('print foo()')

exec()不是“执行命名的函数”,而是“执行给定的python代码”。

于 2013-07-22T00:16:40.630 回答