比如python中有x += y这种形式的表达式,但是没有x++这样的。查了一些资料,发现+=是代表改变了变量,相当于重新生成了一个变量,把操作后的结果赋予这个新生成的变量。但是++的话代表改变了对象本身,注意是对象本省,而不是变量本身。这个对象指的是内存中存放基本类型的数据的地址所指的内容。而Python的模型规定,数值对象是不可改变的。
比如下面这个例子:
>>> b = 5
>>> a = 5
>>> id(a)
162334512
>>> id(b)
162334512
>>> a is b
True
1
2
3
4
5
6
7
8
int理论上是每次赋值都创建一个新对象的。但是由于使用频繁,为了提升性能避免浪费,所有python有个 整数池,默认1~256的数字都属于这个整数池,这些每次赋值的时候,是取得池中的整数对象。但是其他的除外,如下所示:
>>> a = 257
>>> b = 257
>>> id(a)
140397570652784
>>> id(b)
140397570652736
---------------------
作者:爱折腾的猫
来源:CSDN
原文:https://blog.csdn.net/guang09080908/article/details/47273765
版权声明:本文为博主原创文章,转载请附上博文链接!