Python学习之函数返回多个值
问题的引出
Python中,一个函数能不能一次返回多个值?
在C语言中,函数最多返回一个值,如果要返回多个值,可以把这些值封装在一个结构体中。注意,C语言不允许函数返回整个数组。
Python中,可以返回任意类型的对象,如果想返回多个值,可以把这些值封装成一个元组或者其他的集合类型。
举例
>>> def multiple(x, y):
... x = 2
... y = [3, 4]
... return x, y
...
>>> X = 1
>>> L = [1, 2]
>>> X, L = multiple(X, L)
>>> X
2
>>> L
[3, 4]
注意第8行,看起来好像返回了2个值,但是实际上只有一个:一个包含2个元素的元组。它的圆括号是可选的,这里省略了。在调用返回之后,我们能够使用元组赋值去分解这个返回元组的组成部分。
这段代码的实际效果就是通过明确的赋值模拟了其他语言中的输出参数:X 和 L 在调用后发生了改变。
参考资料
《Python学习手册(第4版)》,机械工业出版社