自增运算的时候 a++,但是编译器报错
>>> b = 5
>>> a = 5
>>> id(a)
162334512
>>> id(b)
162334512
>>> a is b
True
python 中,变量是以内容为基准而不是像 c 中以变量名为基准,所以只要你的数字内容是5,不管你起什么名字,这个变量的 ID 是相同的,同时也就说明了 python 中一个变量可以以多个名称访问
这样的设计逻辑决定了 python 中数字类型的值是不可变的,因为如果如上例,a 和 b 都是 5,当你改变了 a 时,b 也会跟着变,这当然不是我们希望的。
因此,正确的自增操作应该 a = a + 1 或者 a += 1,当此 a 自增后,通过 id() 观察可知,id 值变化了,即 a 已经是新值的名称。
本文探讨了Python中变量的标识符特性,指出与C语言不同,Python变量基于内容而非名称。由于数字类型不可变,自增操作`a++`会导致错误。正确做法是使用`a=a+1`或`a+=1`。通过`id()`函数观察变量身份的变化,确认了值的更新。


被折叠的 条评论
为什么被折叠?



