Skip to main content
 首页 » 编程设计

python之Python 中方便的返回值

2025年05月04日18cyq1162

在 Python 中,我想编写一个具有可变数量的返回值并且易于处理的函数。有点像

def test(a): 
    if a > 0: 
        return True 
    else: 
        return False, 123, 'foo' 

可以像这样使用

out = test(-5) 

但我在这里看到的一个缺点是用户必须检查返回参数是否为元组,并采取相应的行动。返回值的含义不是很明确。

一种变体是使用字典作为返回值,但由于我从未在任何代码中看到过这种做法,所以感觉有点老套。

有没有更好的方法来组织代码?

请您参考如下方法:

始终确保您的返回值属于可以相互一致使用的类型。

在 python 中,函数的类型是隐式的。这意味着程序员可以创建任何类型的函数(这很棒),但这意味着您作为程序员必须注意选择类型。简而言之:您应该在文档字符串中描述返回类型,如果这听起来像是个坏主意,或者是一个难以使用的函数,那就是。

这里正确的事情是:

def test(a): 
    ''' Always returns a 3-tuple, composed of Flag,data,data. Data may be None ''' 
    if a > 0: 
        return True, None, None 
    else: 
        return False, 123, 'foo' 
 
flag,data1,data2 = test(a) 

或

def test(a): 
    ''' Always returns a tuple, composed of a Flag, followed by 0 or more data items ''' 
    if a > 0: 
        return True, 
    else: 
        return False, 123, 'foo' 
 
return = test(a) 
flag,rest = return[0],return[1:] 
for x in rest: print x