a+=b是否等价a=a+b?答:不一定等价;
杂谈
自加运算+=
,第一次实实在在的听懂,理解编程,那是在大学为了计算机二级上C语言培训课程的时候,老师对我们讲这个运算符时候所用的名词,同时她还讲到a+=b
等价a=a+b
是等价的运算。今天在Python中再次看到+=
运算符,得到一个新的名词:就地加法。那么它两究竟等价与否?我们用几个实例来验证。这里用的是Python语法,其他编程语法都能实现同样的效果。
分别用两种运算方式计算1+2=3和[1]+[2]=[1, 2]
牛顿曾经说过“我之所以能成功,是因为我站在巨人的肩上。”,对待代码请记住:“我之所以能看懂,是因为我大脑是CPU做的。”在阅读代码时尽量跳出日常思维方式,不要受到日常脑回路限制,从而影响对代码的理解程度。要准确的分析a+=b
与a=a+b
等价与否,就需要从内存的角度去分析两者对内存具体操作。
代码片段一:
a = 1
b = 2
print('片段一a的内存地址1:', id(a))
a+=b
print('片段一a的内存地址2:', id(a))
代码片段二:
a = 1
b = 2
print('片段二a的内存地址1:', id(a))
a=a+b
print('片段二a的内存地址2&