Python的函数是可以return多个值的,但其本质上还是返回单个值,只是利用了tuple的自动打包,将多个值打包成单个tuple返回。
使用代码验证:
1
2
3
4
5
6
|
def func_a():
return 1 , 2 , 3 , 4
if __name__ = = '__main__' :
temp = func_a()
print ( type (temp))
|
运行结果,确认返回的是一个tuple,
1
|
< class 'tuple' >
|
稍微修改代码:
1
2
3
4
5
6
|
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内元素的数量可以自定:
1
2
3
4
5
6
|
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,所以修改代码如下:
1
2
3
4
5
6
7
8
9
|
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函数返回不定数量的值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://www.cnblogs.com/blackmatrix/p/5603186.html