Python中关于++和—(自增和自减)的理解
前言 更多内容,请访问我的 个人博客。
首先要知道的是,Python
中是没有 ++
和 --
的。那么要实现自增和自减的话,可以使用如下操作:
a = a + 1
或
a += 1
复制代码
原因分析 我们知道, python中的数字类型是不可变数据。也就是数字类型数据在
内存
中是不会发生改变,当变量值发生改变时,会新申请一块内存赋值为新值,然后将变量指向新的内存地址。 实验如下:>>> a = 10
>>> id(a)
140530470127960
>>> a += 1
>>> id(a)
140530470129080
复制代码
可以看到当
a
的值发生改变时,a
指向的内存地址也发生了改变。而在C语言中,a
指向的内存地址并不会发生改变,而是改变内存的内容。【Python中关于++和—(自增和自减)的理解】
+=
是改变变量,相当于重新生成一个变量,把操作后的结果赋予这个新生成的变量。++
是改变了对象本身,而不是变量本身,即改变数据地址所指向的内存中的内容。既然
Python
中的数字类型是不可变的,那何来的“自增”这么一说呢?另外:
int
理论上是每次赋值都创建一个新对象的。但是由于使用频繁,为了提升性能避免浪费,所有 python
有个 整数池,默认 [-5, 256]
的数字都属于这个整数池,这些每次赋值的时候,是取得池中的整数对象。但是其他的除外,如下:>>> a = 5
>>> b = 5
>>> id(a)
140530470128360
>>> id(b)
140530470128360
>>> a is b
True>>> c = 257
>>> d = 257
>>> id(c)
140530470136432
>>> id(d)
140530470136408
复制代码
但:
有时候在 Python 中看到存在
++i
这种形式,这其实不是自增,只是简单的表示正负数的正号而已。正正得正,负负得正,所以 ++i
和 --i
都是 i
。转载于:https://juejin.im/post/5cb425aef265da03867e4421
推荐阅读
- 热闹中的孤独
- Shell-Bash变量与运算符
- JS中的各种宽高度定义及其应用
- 2021-02-17|2021-02-17 小儿按摩膻中穴-舒缓咳嗽
- 深入理解Go之generate
- 异地恋中,逐渐适应一个人到底意味着什么()
- 我眼中的佛系经纪人
- 《魔法科高中的劣等生》第26卷(Invasion篇)发售
- “成长”读书社群招募
- 2020-04-07vue中Axios的封装和API接口的管理