gpt4 book ai didi

python - Python 的逗号运算符在赋值过程中是如何工作的?

转载 作者:IT老高 更新时间:2023-10-28 22:13:41 25 4
gpt4 key购买 nike

我正在阅读 Python 文档 (http://docs.python.org/reference/simple_stmts.html#assignment-statements) 中的赋值语句。

其中引用的是:

If the target is a target list enclosed in parentheses or in square brackets: The object must be an iterable with the same number of items as there are targets in the target list, and its items are assigned, from left to right, to the corresponding targets.

看完之后,我想到了写一个这样的示例:

a = 5
b = 4
a, b = a + b, a
print a, b

我的假设是 a 和 b 的值都应该是 9。

但是,事实证明我错了。 'a' 的值为 9,'b' 的值为 5。

有人可以帮助我更好地理解这一点吗?为什么分配“a”的旧值而不是新值?根据文档,将首先分配 a 的值,对吗?我错过了什么吗?

最佳答案

赋值运算符右边的所有表达式在进行任何赋值之前都会被计算。

来自 Python tutorial: First steps towards programming :

The first line contains a multiple assignment: the variables a and b simultaneously get the new values 0 and 1. On the last line this is used again, demonstrating that the expressions on the right-hand side are all evaluated first before any of the assignments take place. The right-hand side expressions are evaluated from the left to the right.

强调我的。

您的代码在功能上等同于以下内容:

a, b = 5 + 4, 5
print a, b

关于python - Python 的逗号运算符在赋值过程中是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11502268/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com