简单。 *在python中调用*函数。如何修复退货?

时间:2012-04-24 00:24:58

标签: python function return call

见这个简单的代码:

$ python
>>> from subprocess import *  
>>> call(['echo','Hi'])
Hi
0

我的问题看起来很简单。我不希望在通话结束时 0 调用调用的每个函数都会出现,这会使条件测试变得混乱。

类似的东西:

if int(call(['function', 'parameter']))>10:
    print 'yes'

那我怎么才能收到

Hi

在这个例子中?

2 个答案:

答案 0 :(得分:2)

您看到的值是echo进程的返回值。因为您处于活动解释器中,所以此返回值将打印到终端。您可以通过将其分配给虚拟变量来忽略它:

_ = call(['echo','Hi'])

确定,你知道你可以写print("Hi"),对吧?

答案 1 :(得分:2)

您希望将Popen与communicate一起使用,如文档中所述:

>>> from subprocess import *
>>> Popen(['echo', 'Hi'], stdout=PIPE).communicate()[0]
'Hi\n'