為什麼 Python 無法在一個函式中定義元組?


自 Python 3.0 之後,就不再可以在函式內定義元組解包作為引數(PEP 3113)。這意味著如果你嘗試按以下方式定義函式——

def fn(a,(b,c)):
   pass


Python 直譯器會在元組的第一個括號處顯示語法錯誤。相反,定義元組物件作為引數,並在函式內部解包。在以下程式碼中,表示兩個點 x 和 y 座標的兩個元組物件被傳遞為引數以計算兩個點之間的距離。在計算之前,元組物件會被解包到各自的 x 和 y 座標中。

def hypot(p1,p2):
   x1,y1=p1
   x2,y2=p2
   import math
   hyp=math.sqrt((x1-x2)**2+(y1-y2)**2)
   return hyp

x=(10,10)
y=(20,20)
print ("hyp=",hypot(x,y))

更新於:2020 年 2 月 18 日

170 次瀏覽

開啟 職業生涯

完成課程獲取認證

開始
廣告
© . All rights reserved.