函数多个返回值
python的函数支持返回多个值。返回多个值时,默认以tuple的方式返回。
例如,下面两个函数的定义是完全等价的。
def f():
return 1,2
def f():
return (1,2)
如果将函数调用的返回值赋值给对应个数的变量,它会一一对应的赋值,这很容易理解。下面是等价的:
a, b = f() # a=1, b=2
(a, b) = f()
如果赋值给一个变量,将会把整个元组赋值给变量。下面是等价的,a表示整个元组(1,2):
a = f()
(a) = f()
丢弃返回值
很多时候,多个返回值并非全都是所需的,这时候需要丢弃某些返回值。python有几种方式只获取部分返回值:
1.直接放在空上下文,不进行任何赋值,将丢弃所有返回值
# f()的返回值全丢弃
f()
2.因为返回值是元组,所以可以通过索引取得某个或某几个返回值
a = f()[0]
b = f()[1]
3.使用下划线_
# 丢弃第二个返回值
a, _ = f()
4.使用双下划线__
或更多下划线___________
# 丢弃第二个返回值
a, __ = f()
其中第三种方式"使用下划线"不是很安全,因为下划线_
在python中有多种意义。而且正好有两种意义在某些情况下可能会产生冲突。所以,建议使用第四种方式。