如何在不执行函数的情况下获取从函数返回的元素数量?并且可能还知道这些元素的类型?
我知道我可以做类似的事情:
def foo ():
return 'a', 2
handle = foo()
print len(handle)
>> 2
但在这里我需要执行我的功能......
你不能——一个函数可以根据输入或其他因素返回不同数量的参数(存储在单个元组中)和该元组中不同类型的变量。考虑(愚蠢的)功能:
def foo(arg):
if arg:
return 1,2
else
return "foo","bar","baz"
现在调用它:
foo(1) # (1,2)
foo(0) # ("foo","bar","baz")
知道函数将返回什么的唯一方法是 1)阅读源代码或 2)(如果你是一个信任的人)阅读函数的文档:-)。
不。一般来说,你只能说一个函数只返回一个对象。该对象可以是一个元组,并且该元组可以包含任意数量的对象。在您的示例中,您将返回一个包含 2 个对象的元组
考虑这个函数
import random
def foo():
choice = random.choice("abcd")
if choice == "a":
return 1,2,3 # Returns a tuple
if choice == "b":
return 4 # Returns an int
if choice == "c":
return "C" # Returns a str
if choice == "d":
return None # Returns None
显然你无法知道返回值的类型