首頁 >後端開發 >Python教學 >為什麼 Python 中的多重賦值 (x, y = y, x y) 與單獨賦值 (x = y; y = x y) 不同?

為什麼 Python 中的多重賦值 (x, y = y, x y) 與單獨賦值 (x = y; y = x y) 不同?

Susan Sarandon
Susan Sarandon原創
2024-12-15 17:52:10923瀏覽

Why Does Multiple Assignment in Python (x, y = y, x y) Differ from Separate Assignments (x = y; y = x y)?

Python 中的多重賦值與求值順序

在Python 中,當使用多重賦值時,例如x, y = y, x y,它是必須了解基本順序

問題:

當一次分配多個值時,為什麼x, y = y, x y 會得到與單獨分配不同的值,即x = y; y = x y?

答案:

在 Python 中,賦值語句的右側在任何變數設定發生之前都會被完全計算。這意味著在 x, y = y, x y 中,會發生以下步驟:

  1. y 被評估並儲存為火腿。
  2. x y 被評估並儲存為垃圾郵件。
  3. x 設定為火腿。
  4. y 設定為

實際上,它相當於:

ham = y
spam = x + y
x = ham
y = spam

另一方面,在x = y; y = x y,步驟為:

  1. y 設定為x。
  2. x y 計算為 y y 並設定為 y。

此結果x 被設定為 y 的原始值,y 被設定為 x 和 y 的原始值總和y.

以上是為什麼 Python 中的多重賦值 (x, y = y, x y) 與單獨賦值 (x = y; y = x y) 不同?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn