Python函数返回不定数量的值

Posted BlackMatrix

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python函数返回不定数量的值相关的知识,希望对你有一定的参考价值。

Python的函数是可以return多个值的,但其本质上还是返回单个值,只是利用了tuple的自动打包,将多个值打包成单个tuple返回。

 

使用代码验证:

def func_a():
    return 1, 2, 3, 4

if __name__ == __main__:
    temp = func_a()
    print(type(temp))

运行结果,确认返回的是一个tuple,

<class tuple>

 

稍微修改代码:

def func_a(*args):
    return 1, 2, 3, 4

if __name__ == __main__:
    a, b, c, d = func_a()
    print(a, b, c, d)

代码中利用了tuple的自动解包,将tuple的值分别赋值给了a, b, c, d四个变量,实现返回多个值

 

既然知道实际上Python返回多个值的本质是返回tuple,再自动解包赋值给N个变量,那要实现返回任意多个值,只要手动返回一个tuple就可以了,tuple内元素的数量可以自定:

def func_a(*args):
    return tuple(arg * 2 for arg in args)

if __name__ == __main__:
    a, b, c, d = func_a(1, 2, 3, 4)
    print(a, b, c, d)

代码中,将传入的参数值 x 2后,转换成tuple返回,再利用tuple的自动解包赋值给多个变量,从而实现函数返回不定数量的值。

这里需要注意,当返单个值时,不需要再手动返回一个tuple,所以修改代码如下:

def func_a(*args):
    temp = tuple(arg * 2 for arg in args)
    return temp if len(temp) > 1 else temp[0]

if __name__ == __main__:
    a, b, c, d = func_a(1, 2, 3, 4)
    print(a, b, c, d)
    e = func_a(Hello)
    print(e)

 

以上是关于Python函数返回不定数量的值的主要内容,如果未能解决你的问题,请参考以下文章

设计一个函数,它接受不定数量的参数,这是参数都是函数。这些函数都接受一个回调函数作为参数,按照回调函数被调用的顺序返回函数名

Python ❀ 函数

Python ❀ 函数

python-输入不定长参数函数传值

BigQuery 异步查询作业 - fetch_results() 方法返回错误数量的值

sql将字符串拆分为始终相同数量的片段