我需要在Numpy / Scipy中做一些反省。虽然找到有关如何获取帮助文档字符串和参数的信息相对容易,但我无法获得有关如何获取返回值信息的任何信息。更具体地说,我只想找到哪些函数返回多个值,或等效(或多或少)元组。有办法吗?
答案 0 :(得分:0)
一般来说,你无法从Python中找到它。答案不是常数。
def complicated(i):
if i == 1:
return 0
elif i == 2:
return (0,1)
elif i == 3:
return [0,1,2]
elif program_halts(i):
return {}
else
return "Nope"
更糟糕的是,即使您知道输入,也无法在不解决暂停问题的情况下判断结果。
您唯一的机会是阅读文档。
答案 1 :(得分:0)
文档应该告诉你,但你可以在运行时测试你是否真的需要:
r = something()
if type(r)==tuple or type(r)==list:
for rn in r:
# do something with each returned value
# (which might include further checking if it's a list or a tuple)
elif type(r)==int or type(r)==float:
# it's a scalar numeric value
else:
raise ValueError( "Can't handle {}".format(r) )
在传递返回列表或元组的函数时,应该返回一个长度为0或1的列表或元组,以指示没有任何值或只返回一个值。我看到了代码,你得到None
,标量或元组/列表,这使得使用结果不必要地复杂!