Python 中的鍊式賦值
在Python 中,使用語法x = y = somefunction() 的鍊式賦值相當於鏈賦值= somefunction( ); x = y。這意味著函數傳回的值首先分配給最左邊的目標,然後將相同的值分配給後續目標。
但是,一個常見的誤解是鍊式賦值,例如 x = y = somefunction() 等價於 x = somefunction(); y = 某個函數()。事實並非如此。
從左到右求值
理解鍊式賦值的關鍵是記住 Python 從左到右計算表達式和語句。這表示在表達式 x = y = somefunction() 中,會發生以下步驟:
因此,x 和 y 最終引用的是相同的物件。
意義
這種從左到右的評估可能會產生重要的意義。例如,如果 somefunction() 傳回一個可變物件(例如清單),則指派給其中一個目標將影響引用相同物件的所有其他目標。
範例:
考慮以下程式碼:
<code class="python">x = y = [] x.append(1) print(x, y)</code>
上述程式碼的輸出將為[1, 1],因為x 和y 引用相同的列表對象。對其中一個目標所做的任何更改都會反映在其他目標中。
結論
Python 中的鍊式賦值從左到右進行計算,得到相同的結果物件被指派給所有目標。在處理可變物件時,這可能會產生重要影響,因為對一個目標的變更可能會影響對相同物件的所有參考。
以上是Python 中的鍊式作業如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!