为什么Python中没有"a++"这种写法
2019-03-28 10:57
330 查看
一开始学习 Python 的时候习惯性的使用 C 中的 a++ 这种写法,发现会报 SyntaxError: invalid syntax 错误,为什么 Python 没有自增运算符的这种写法呢?
我们可以看一下 Python 下:
>>>a = 2 >>>b = 2 >>>id(a) #id() 函数用于获取对象的内存地址。 140732976575344 >>>id(b) 140732976575344 >>>
再来看看 C 语言中:
#include<stdio.h> int main() { int a = 1; int b = 1; printf("%d\n",&a); printf("%d\n",&b); return 0; }
输出:
这里可以看出 Python 在变量的存储上与 C 语言的不同,在 C 语言中,值的存储以变量名来区分,一个变量具有单独的地址空间;而 Python 中则不一样,只要值是相同的,不管你的变量名是什么,它们的地址都是相同的,也就是说, Python 允许一个值被多个变量名称绑定。
这里说明一下,在脚本式编程环境中是这样,但是在交互式编程环境下,Python 为了优化速度,使用了小整数对象池, 避免为整数频繁申请和销毁内存空间,编译器会有一个小整数池的概念,小整数的定义是 [-5, 256] 这些整数对象是提前建立好的,不会被垃圾回收,也就是说,变量在这个范围内是会按照前面所说的,共用内存地址,超过这个值则使用单独的内存地址。 如:
>>>a=1000 >>>b=1000 >>>id(a);id(b) 266662366224 266617350384 >>>
总结
以上所述是小编给大家介绍的为什么Python中没有"a++"这种写法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
相关文章推荐
- Python中为什么没有++和–(自增/减)(转)
- python 比大小---为什么没有三元操作符?
- [转]为什么python标准库没有实现链表
- 知识普及之:CSS: body{font-size: 62.5%;}这种写法为什么???
- Python学习笔记之疑问 2:python的函数定义为什么没有开始和结束符
- 为什么Python中没有Switch/Case语句?
- Python基础(十三) 为什么说python多线程没有真正实现多现程
- 为什么Python没有自增(++)或自减(--)运算?
- 为什么支付宝使用用户体验欠佳的安全控件,而国外 Paypal、Google Checkout 都没有这种的设计?
- Python中为什么没有++和--(自增/减)
- 为什么支付宝使用用户体验欠佳的安全控件,而国外 Paypal、Google Checkout 都没有这种的设计?
- Python中为什么没有switch-case
- Python中为什么没有++和--(自增/减)
- "aa".equals(a)这种写法为什么就可以避免空指针。
- 转载:不要再问 "Python 函数中,参数是传值,还是传引用?" 这种没有意义的问题了
- Python为什么没有switch/case语句?
- python_为什么没有DO WHILE和switch
- C++中为什么有delete[]这种写法?
- 为什么新装的系统安装Python3.4.1后没有pip
- 我为什么从python转向go