【问题标题】:Simple. *call* function in python. How to fix the return?简单的。 *调用* python中的函数。如何解决退货问题?
【发布时间】:2012-05-04 15:10:09
【问题描述】:

看这个简单的代码:

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

我的问题看起来很简单。我不想在通话结束时出现这个 0call 调用的每个函数都与 this 一起出现,这会弄乱条件测试的内容。

类似:

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

那我怎么才能只收到

Hi

在这个例子中?

【问题讨论】:

标签: python function return call


【解决方案1】:

您看到的值是echo 进程的返回值。因为你在一个活跃的解释器中,所以这个返回值被打印到终端。您可以通过将其分配给虚拟变量来忽略它:

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

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

【讨论】:

  • 是的,这行得通^^。几乎。如何使用结果设置变量? >>>a=_=call(['echo','Hi'])>>>a 0 我想要>>>a Hi
  • 是的 (print 'Hi'),但我需要来自我的一个函数的这个回调,它有一个特定的返回值以在条件测试中使用。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-05
    • 2023-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多