a,b=b,a+b 计算和赋值的顺序是怎样的??

2014-05-22 00:28:10 +08:00
 ljcarsenal
看到用这个实现的斐波那契函数,表示不太理解
5371 次点击
所在节点    Python
26 条回复
glasslion
2014-05-22 12:44:05 +08:00
@jsonline
@HatMatrix 不这样写的Python程序员应该被开除
tioover
2014-05-22 14:28:21 +08:00
先算出左右两边的tuple然后赋值
bravluna
2014-05-22 19:35:05 +08:00
py 会临时建立个 tuple (b, a+b),这样就明白了吧?
bravluna
2014-05-22 19:37:43 +08:00
所以 py 里交换变量值不需要再来个临时变量:a,b = b,a ,就可以交换
HatMatrix
2014-05-23 08:57:11 +08:00
@glasslion 一直以为是C代码 ⊙﹏⊙b汗
hooluupog
2014-05-24 10:13:01 +08:00
对于多变量赋值语句a,b = b,a 编译器会首先计算完右边的变量值然后依次进行赋值(当然,有的语言支持惰性求值的情况例外)。所以:
a=1
b=2
a,b=b,a
其实就是:a,b = 2,1

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/113671

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX