如果调用没有捕获返回,如何保存从python函数返回的值

时间:2016-09-28 23:35:11

标签: python

假设我有一个python函数,其中xy是相对较大的对象(列表,NumPy矩阵等):

def myfun(x):
  y=some complicated function of x
  return y

如果在交互式会话中,用户将其称为:

myfun(5)

该呼叫基本上没用,因为y丢失了。我们还假设该函数需要一段时间才能运行。有没有办法检索答案,所以用户不必重新运行,即answer=myfun(5)?或者,什么是一种好的(pythonic)方式来编写函数,使其在这种情况下“万无一失”?一些不那么好的选择是:

需要一个存储值的参数,例如

def myfun(x,y):
  y = some complicated function of x
  return y

或者也许:

def myfun(x):
  y = some complicated function of x
  global temp
  temp = y
  return y

在后一种情况下,如果用户错误地调用myfun(5),则可以选择y=temp来获取答案..但使用global似乎错了。

1 个答案:

答案 0 :(得分:4)

y=_

假设您在交互式python控制台中。 _是持有最后一个"结果"

的魔力