为什么Python中没有"a++"这种写法


Posted in Python onNovember 27, 2018

一开始学习 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 Django模板的使用方法(图文)
Nov 04 Python
利用Python命令行传递实例化对象的方法
Nov 02 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
浅谈flask截获所有访问及before/after_request修饰器
Jan 18 Python
numpy使用技巧之数组过滤实例代码
Feb 03 Python
Python编程中NotImplementedError的使用方法
Apr 21 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
Java Spring项目国际化(i18n)详细方法与实例
Mar 20 Python
Python生成器传参数及返回值原理解析
Jul 22 Python
python logging模块的使用
Sep 07 Python
通过Django Admin+HttpRunner1.5.6实现简易接口测试平台
Nov 11 Python
python 如何获取页面所有a标签下href的值
May 06 Python
django session完成状态保持的方法
Nov 27 #Python
Python3实现腾讯云OCR识别
Nov 27 #Python
python利用百度AI实现文字识别功能
Nov 27 #Python
python如何实现一个刷网页小程序
Nov 27 #Python
python实现简单的文字识别
Nov 27 #Python
python中类的属性和方法介绍
Nov 27 #Python
Python2和Python3中urllib库中urlencode的使用注意事项
Nov 26 #Python
You might like
令PHP初学者头疼十四条问题大总结
2008/11/12 PHP
关于PHP二进制流 逐bit的低位在前算法(详解)
2013/06/13 PHP
php使用ffmpeg获取视频信息并截图的实现方法
2016/05/03 PHP
PHP微信模板消息操作示例
2017/06/29 PHP
使用Javascript和DOM Interfaces来处理HTML
2006/10/09 Javascript
纯JS实现五子棋游戏兼容各浏览器(附源码)
2013/04/24 Javascript
用于deeplink的js方法(判断手机是否安装app)
2014/04/02 Javascript
js实现的点击数量加一可操作数据库
2014/05/09 Javascript
jquery、js调用iframe父窗口与子窗口元素的方法整理
2014/07/31 Javascript
js实现图片和链接文字同步切换特效的方法
2015/02/20 Javascript
JS简单实现动画弹出层效果
2015/05/05 Javascript
详解Bootstrap glyphicons字体图标
2016/01/04 Javascript
使用JS代码实现点击按钮下载文件
2016/11/12 Javascript
原生Javascript插件开发实践
2017/01/18 Javascript
利用JS实现简单的日期选择插件
2017/01/23 Javascript
微信小程序 引入es6 promise
2017/04/12 Javascript
xmlplus组件设计系列之分隔框(DividedBox)(8)
2017/05/02 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
jQuery Layer弹出层传值到父页面的实现代码
2017/08/17 jQuery
NodeJS收发GET和POST请求的示例代码
2017/08/25 NodeJs
layui table 复选框跳页后再回来保持原来选中的状态示例
2019/10/26 Javascript
JavaScript switch语句使用方法简介
2019/12/30 Javascript
[41:37]DOTA2北京网鱼队选拔赛——冲击职业之路
2015/04/13 DOTA
Python图片裁剪实例代码(如头像裁剪)
2017/06/21 Python
如何导出python安装的所有模块名称和版本号到文件中
2020/06/05 Python
解决python中0x80072ee2错误的方法
2020/07/19 Python
python属于哪种语言
2020/08/16 Python
教师节宣传方案
2014/05/23 职场文书
反邪教标语
2014/06/23 职场文书
党员个人自我剖析材料
2014/10/08 职场文书
2014年结对帮扶工作总结
2014/12/17 职场文书
廉洁自律承诺书范文
2015/04/28 职场文书
违规违纪检讨书范文
2015/05/06 职场文书
Python基础之函数嵌套知识总结
2021/05/23 Python
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB
一篇文章带你学习Mybatis-Plus(新手入门)
2021/08/02 Java/Android