首頁 > 後端開發 > Python教學 > Python 的多重賦值與順序賦值有何不同?

Python 的多重賦值與順序賦值有何不同?

DDD
發布: 2024-12-05 02:26:09
原創
320 人瀏覽過

How Does Python's Multiple Assignment Differ from Sequential Assignment?

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”,右側計算為如下:

  • y 被評估為 ham。
  • x y 被評估為垃圾郵件。

然後將變數設定為以下值:x 指派為 ham,y 指派為垃圾郵件。

相反,在第二種情況下,“x = y; y = x y”,賦值按順序發生:x 設定為y,然後y 設定為x y,這相當於y y.

因此,第一種情況下的多重賦值的行為有所不同,因為值是同時計算和設定的。如果您想執行單獨的作業,您應該使用後一種順序方法。

以上是Python 的多重賦值與順序賦值有何不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板