【发布时间】:2015-10-12 12:39:18
【问题描述】:
python中做的有什么区别:
a, b = c, max(a, b)
和
a = c
b = max(a, b)
将两个变量赋值设置在同一行有什么作用?
【问题讨论】:
标签: python python-2.7 variable-assignment
python中做的有什么区别:
a, b = c, max(a, b)
和
a = c
b = max(a, b)
将两个变量赋值设置在同一行有什么作用?
【问题讨论】:
标签: python python-2.7 variable-assignment
您的两个 sn-ps 做不同的事情:尝试使用 a、b 和 c 分别等于 7、8 和 9。
第一个 sn -p 将三个变量设置为9、8 和9。换句话说,max(a, b) 是在a 分配给c 的值之前计算的。本质上,a, b = c, max(a, b) 所做的只是将两个值压入堆栈;变量a 和b 然后在弹出时分配给这些值。
另一方面,运行第二个 sn-p 会将所有三个变量设置为 9。这是因为a 在函数调用max(a, b) 之前被设置为指向c 的值。
【讨论】:
temp = max(a, b) 然后a = c 然后b = temp。或者,在这种情况下,您可以仔细选择两行的顺序,例如b = max(a, b) 然后a = c 应该有同样的效果。
它们是不同的。第二个好像在做
a, b = c, max(c, b)
因为您在执行b = max(a, b) 之前将c 分配给a。而第一个是使用a 的旧值来计算它。
【讨论】: