首页 > 后端开发 > 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
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板