python auto-increment
2016-01-03 13:32
441 查看
问题无外乎就是 python 没有自增运算符,自增操作是如何实现的
回答中有人介绍了关于自增操作,python 不使用 ++ 的哲学逻辑:编译解析上的简洁与语言本身的简洁,就不具体翻译了
后面还有老外回答并附带了一个例子非常的精彩,指出了 python 与 c 语言概念上的一些差异,语言描述的可能未必准确,直接上例子:
>>> 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 不使用 ++ 的哲学逻辑:编译解析上的简洁与语言本身的简洁,就不具体翻译了
后面还有老外回答并附带了一个例子非常的精彩,指出了 python 与 c 语言概念上的一些差异,语言描述的可能未必准确,直接上例子:
>>> 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默认的编码方式
- [No000078]Python3 字符串操作
- 2016/1/3 Python中的多线程(2):threading模块
- python学习笔记-Day10--(select-IO多路复用)(queue)
- python Basic Authentication
- 用python简单处理图片(1):打开\显示\保存图像
- Python性能鸡汤
- python实用技巧(三)
- leetcode之Flatten Binary Tree to Linked List
- python 代码片段7
- PyCharm的注册与使用
- python实战系列之生成随机验证码(三)
- 【python】SIR模型实现
- python 代码片段6
- Python 爬虫的实践运用(1)--爬取百度百科的词条
- python 代码片段5
- Python 决定迁移到 GitHub
- python基础知识
- 2016 1月1日-1月1日python 学习总结
- python解决文本乱码问题及文本二进制读取后的处理