Python元组赋值顺序是固定的吗?

2022-04-13 00:00:00 python tuples variable-assignment

问题描述

a, a = 2, 1

总是导致等于1?换句话说,元组赋值保证是从左到右的吗?

当我们不仅有a,而是a[i]、a[j]以及i和j可能相等或可能不相等时,问题就变得相关了。


解决方案

是的,元组分配必须从左到右进行,这是Python语言参考的一部分。

https://docs.python.org/2.3/ref/assignment.html

赋值语句计算表达式列表(请记住 这可以是单个表达式或逗号分隔的列表,后者 产生元组),并将单个结果对象分配给 目标按从左到右的顺序列出。

所以所有的Python实现都应该遵循这个规则(正如另一个答案中的实验所证实的那样)。

就我个人而言,我仍然会犹豫是否使用它,因为对于未来的代码读者来说,它似乎不清楚。

相关文章