当函数返回多个值的时候,Python会自动将它们封装成一个元组(tuple)并返回。我们可以使用多个变量,或者使用可迭代对象对元组进行解包来获取这些返回值。
多个变量接收返回值
在函数调用的时候,我们可以使用多个变量来接收函数返回的多个值,Python会自动将这些值封装成一个元组(tuple),然后将这个元组进行拆包,将每一个元组成员分别赋值给指定的变量。
示例代码如下:
def multi_return():
return "apple", "orange", "banana"
fruit1, fruit2, fruit3 = multi_return()
print(fruit1) # apple
print(fruit2) # orange
print(fruit3) # banana
在上面的示例代码中,我们定义了一个函数multi_return()
,它返回三个不同的字符串。当我们调用这个函数时,将会返回一个元组(tuple),其中包含了三个字符串。然后,我们使用三个变量fruit1
、fruit2
、fruit3
来接收元组中的三个值,每个值分别被赋值到对应的变量。
最后,我们打印这三个变量的值,可以看到它们分别是apple
、orange
、banana
。
使用可迭代对象解包元组
除了使用多个变量来接收函数返回值外,我们还可以使用一个可迭代对象来接收参数,然后将这个可迭代对象对元组进行解包,获取元组中的值。
示例代码如下:
def multi_return():
return "apple", "orange", "banana"
fruits = multi_return()
print(fruits) # ('apple', 'orange', 'banana')
print(*fruits) # apple orange banana
在这个示例代码中,我们通过调用multi_return()
函数得到了一个元组,其中包含了三个字符串。注意,我们没有使用多个变量来接收返回值,而是将返回值赋值给了一个名为fruits
的变量。
在第一个print()
语句中,我们打印了fruits
变量,发现它是一个包含三个值的元组。正如我们所说的那样,Python会将函数返回的多个值自动封装成一个元组(tuple)。
在第二个print()
语句中,我们使用了一个特殊的操作符*
,它可以将可迭代对象拆包成单个元素,之后我们就可以使用拆包后的元组中的每一个值。在这里,我们使用*fruits
来解包元组,将其中的三个值apple
、orange
、banana
分别打印出来。