首页 >后端开发 >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