在 Java 或 C 等语言中, ++ 做的事情是让这个变量的值 +1,比如 a = 1a++,意思是将 a 原本的内存区域表示的值替换为原本的值 +1。而在 Python 中,一旦一个整数对象创建,其值就不能再被改变。所以,就无法实现 自增、自减 操作了。
---------------
更新一下吧,关于 i += 1 和 i = i + 1 究竟有什么不一样。在大多数情况下,你可以认为这两种写法是等价的。但是在实现上,还是有些许差异的,下面以整形变量 a 举例,两种写法生成的字节码如下:
i += 1:
6 LOAD_FAST0 (a)
9 LOAD_CONST 1 (1)
12 INPLACE_ADD
13 STORE_FAST 0 (a)
i = i + 1
6 LOAD_FAST0 (a)
9 LOAD_CONST 1 (1)
12 BINARY_ADD
13 STORE_FAST 0 (a)
可以看到,在底层调用上还是不同的。反应到 Python 语言层面的实现上,__add__ 对应着 + 号运算,而 __iadd__ 对应着 += 运算。
1、第一步就是打开后盖。
2、第二步断开电源线,白色的插头,可以用手拔。
3、第三部,看到黑色的盒子,这个盒子打开,就是内存条插槽。但要注意盒子上面有个箭头,等装好内存条后,靠个箭头的位置把盒子装进去。
4、第四步,用螺丝刀小心翘开这个盒子,要用巧劲。撬开后就可以看到内存槽了,首批配的内存是三星的,刚好装上组成双通道。最后装完内存条,全部装回去就好了。
可以的。举个例子:class Exp
attr :a
def initialize (a,b,c)
@a = a + b +c
end
def []= (index,*args)
self.a.index(index)
end
end
e = Exp.new('aaaa','bbbb','cccc')
puts e.a
puts e.[]=("b")
输出结果:
"aaaabbbbcccc"
4
不知道是不是你想要的答案,呵呵。