首页 > 后端开发 > 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
发布: 2024-12-15 17:52:10
原创
920 人浏览过

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中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板