1、使用代码验证:
def func_a():
return 1, 2, 3, 4
if __name__ == '__main__':
temp = func_a()
print(type(temp))
运行结果,确认返回的是一个tuple
<class 'tuple'>
2、稍微修改代码:
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)