Python:读取具有可变返回类型的函数的输出

Python:读取具有可变返回类型的函数的输出,python,function,return,iterable,Python,Function,Return,Iterable,我需要使用一个包中的函数,该函数返回单个对象或一个numpy对象数组。我想读取numpy数组中函数的输出,不考虑输出的类型 原因是我希望能够迭代输出。所以实际上它不一定是一个numpy数组,我只想要一个iterable对象 例如: import numpy as np def f(returnArray) : if returnArray : return np.arange(2) else : return 1 foo1 = f(True) foo2 = f(Fal

我需要使用一个包中的函数,该函数返回单个对象或一个numpy对象数组。我想读取numpy数组中函数的输出,不考虑输出的类型

原因是我希望能够迭代输出。所以实际上它不一定是一个numpy数组,我只想要一个iterable对象

例如:

import numpy as np

def f(returnArray) :
  if returnArray :
    return np.arange(2)
  else :
    return 1

foo1 = f(True)
foo2 = f(False)

print foo1, foo2
产出将是

[0 1] 1
但我希望foo2是可移植的。因为f是包的一部分,我当然不能修改它


例如,有没有一种不检查输出是否可输入的优雅方法?

也许您可以返回一个用一些*参数构造的生成器?您不能简单地返回[1]吗而不是标量1?我希望我可以,但如上所述,我不能将任何东西更改为f,因为它是包的一部分。我不确定是否有一种完全干净的方法来完成它。看一看这个相关的线程,特别是第二个答案:如果您将False作为arg发送,您不确定会得到一个对象吗?如果是,那么当它为False时,将返回值包装在[]中。