Python 中的多重賦值之謎
在 Python 中,賦值的計算方式可能不是很明顯。其中一種情況是多重賦值,即同時為兩個或多個變數賦值。
考慮以下內容:
>>> x = 1 >>> y = 2
現在,讓我們嘗試一次賦值兩個值:
>>> x, y = y, x + y >>> x 2 >>> y 3
出乎意料的是,與分配值相比,這會產生不同的結果分別:
>>> x = 1 >>> y = 2 >>> x = y >>> y = x + y >>> x 2 >>> y 4
解釋
理解這種行為的關鍵在於賦值語句中的求值順序。在 Python 中,賦值的右側總是在實際設定變數之前完全計算。
在第一種情況下,“x, y = y, x y”,右側計算為如下:
然後將變數設定為以下值:x 指派為 ham,y 指派為垃圾郵件。
相反,在第二種情況下,“x = y; y = x y”,賦值按順序發生:x 設定為y,然後y 設定為x y,這相當於y y.
因此,第一種情況下的多重賦值的行為有所不同,因為值是同時計算和設定的。如果您想執行單獨的作業,您應該使用後一種順序方法。
以上是Python 的多重賦值與順序賦值有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!