為什麼 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.