Pet*_*sma 2 python tuples variable-assignment
将
a, a = 2, 1
Run Code Online (Sandbox Code Playgroud)
总是导致等于1?换句话说,元组赋值是保证从左到右吗?
当我们没有a,但a [i],a [j]和i和j可能相等或不相等时,这个问题变得相关.
是的,它是python语言参考的一部分,元组赋值必须从左到右进行.
https://docs.python.org/2.3/ref/assignment.html
赋值语句计算表达式列表(请记住,这可以是单个表达式或以逗号分隔的列表,后者产生元组)并从左到右将单个结果对象分配给每个目标列表.
因此,所有Python实现都应遵循此规则(正如其他答案中的实验所证实).
就个人而言,我仍然会犹豫是否使用它,因为对于未来的代码读者来说似乎并不清楚.
怎么运行的 :
a, a = 2, 1
--> a does not exist, create variable a and set value to 2
--> a already exists, value of a changed to 1
Run Code Online (Sandbox Code Playgroud)
当你有不同的变量时,它的工作方式完全相同:
a, b, a = 1, 2, 3
--> a does not exist, create variable a and set value to 1
--> b does not exist, create variable b and set value to 2
--> a already exists, value of a changed to 3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
329 次 |
| 最近记录: |