python的函數支持返回多個值。返回多個值時,默認以tuple的方式返回。python
例如,下面兩個函數的定義是徹底等價的。安全
def f(): return 1,2 def f(): return (1,2)
若是將函數調用的返回值賦值給對應個數的變量,它會一一對應的賦值,這很容易理解。下面是等價的:函數
a, b = f() # a=1, b=2 (a, b) = f()
若是賦值給一個變量,將會把整個元組賦值給變量。下面是等價的,a表示整個元組(1,2):code
a = f() (a) = f()
不少時候,多個返回值並不是全都是所需的,這時候須要丟棄某些返回值。python有幾種方式只獲取部分返回值:索引
1.直接放在空上下文,不進行任何賦值,將丟棄全部返回值變量
# f()的返回值全丟棄 f()
2.由於返回值是元組,因此能夠經過索引取得某個或某幾個返回值co
a = f()[0] b = f()[1]
3.使用下劃線_
return
# 丟棄第二個返回值 a, _ = f()
4.使用雙下劃線__
或更多下劃線___________
# 丟棄第二個返回值 a, __ = f()
其中第三種方式"使用下劃線"不是很安全,由於下劃線_
在python中有多種意義。並且正好有兩種意義在某些狀況下可能會產生衝突。因此,建議使用第四種方式。