如何获取Python中函数返回的元素数量

时间:2012-08-28 01:32:27

标签: python function

如何在不执行任务的情况下获取从函数返回的元素数量?也许,也知道这些元素的类型?

我知道我可以这样做:

def foo ():
    return 'a', 2

handle = foo()
print len(handle)
>> 2

但是我需要执行我的功能......

2 个答案:

答案 0 :(得分:3)

你不能 - 函数可以根据输入或其他因素返回不同数量的参数(存储在单个元组中)和该元组中不同类型的变量。考虑(愚蠢)功能:

def foo(arg):
    if arg:
       return 1,2
    else
       return "foo","bar","baz"

现在打电话给:

foo(1) # (1,2)
foo(0) # ("foo","bar","baz")

知道函数将返回的唯一方法是1)阅读源或2)(如果你是一个信任的人)阅读函数的文档: - )。

答案 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

显然你无法知道返回值的类型