如何检查Python中返回的多个值?
我需要在Numpy/Scipy中进行一些反思。虽然找到有关如何获取帮助文档字符串和参数的信息相对容易,但我无法获得有关如何获取返回值信息的任何信息。更具体地说,我只想找出哪些函数返回多个值,或者等价地(或多或少地)返回元组。有什么方法可以做到这一点吗?一般来说,您无法从Python中找到这一点。答案不是一个常数如何检查Python中返回的多个值?,python,Python,我需要在Numpy/Scipy中进行一些反思。虽然找到有关如何获取帮助文档字符串和参数的信息相对容易,但我无法获得有关如何获取返回值信息的任何信息。更具体地说,我只想找出哪些函数返回多个值,或者等价地(或多或少地)返回元组。有什么方法可以做到这一点吗?一般来说,您无法从Python中找到这一点。答案不是一个常数 def complicated(i): if i == 1: return 0 elif i == 2: return (0,1)
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"
更糟糕的是,即使您知道输入,如果不解决停止问题,您也无法说出结果
您唯一的机会就是阅读文档。文档应该告诉您,但是如果您确实需要,您可以在运行时进行测试:
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
、标量或元组/列表,这使得使用结果变得不必要的复杂 据我所知,Python是没有出路的。你能检查一下文件吗?不知道你需要什么。。。可能会有帮助吗?同样在Python这样的动态语言中,若不运行代码,就无法推断返回值的类型。你唯一可以试着祈祷的就是帮助(函数名)。否则,您必须运行该功能并查看它返回的内容