函數多個返回值
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中有多種意義。而且正好有兩種意義在某些情況下可能會產生沖突。所以,建議使用第四種方式。
