python在做什么之间有什么区别:
a, b = c, max(a, b)
和
a = c
b = max(a, b)
在同一行上设置两个变量赋值有什么作用?
答案 0 :(得分:6)
您的两个代码段做了不同的事情:分别尝试b
,c
和7
等于8
,9
和9
。
第一个代码段将三个变量设置为8
,9
和max(a, b)
。换句话说,{<1}}在 a
被分配给c
的值之前计算。基本上,a, b = c, max(a, b)
所做的就是将两个值压入堆栈;然后,当弹出它们时,变量a
和b
将分配给这些值。
另一方面,运行第二个代码段会将所有三个变量设置为9
。这是因为a
设置为在函数调用c
之前指向max(a, b)
的值。
答案 1 :(得分:3)
他们是不同的。第二个就像做
a, b = c, max(c, b)
因为您在执行c
之前将a
分配给b = max(a, b)
。第一个是使用a
的旧值来计算它。