python 自增为什么没有自代

foo现在和bar的地址实际上是相同的
當foo+1变成2之后,它的那个啥地址就跟之前不一样了。。
应该说是概念不同吧。

i++ 这种操作在C刚诞生的那会,很有用因为相对于i=i+1可以節约两个字节的空间,那时候的内存真的在乎这两个字节后来其他语言如Java只不过考虑到程序员的习惯沿用了这一用法。
在今天已经不鼡考虑这两个字节了,为了程序的可读性还是写成i=i+1比较好,python 自增中就去掉i++这种用法了

python 自增的 += 1 依然不是原子操作。。。

有GIL保障就好毕竟不是native的

因为 python 自增 基本上用不到自加自减,不是么

看到楼主写的ju花一紧,下意识看了下tag

python 自增解释器有很多脑残举动。比如代码裏 1+1 可以自动优化成一个常量但是1 + 2 * 3就不行。

大家可以自己去python 自增看看结果v2ex贴代码比较乱就不贴了。反正笑死人了

python 自增很多东西都没有:還比如switch,条件语句里面的赋值

当然,以及楼主所说的++和--这些在刚转入python 自增的时候是让人很不习惯,我也吐槽过但是习惯了也就好了,有其他办法实现目的

@ 编译后都是一样的,省不到只是让编码减少一点而已。

巨型分支效率比switch高

是创意工作者们的社区是一个分享洎己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方

  • 这两天看了一些网上各大互联网公司的面试题发现腾讯特别喜欢考察++和–以及移位运算相关的内容。C++相对来说还是比较熟悉的对于这类问题只要记住运算符的优先级┅般问题不大。由于也会经常用python 自增突然觉得python 自增中为什么没有自增自减运算符呢?
  • 比如python 自增中有x += y这种形式的表达式但是没有x++这样的。查了一些资料发现+=是代表改变了变量,相当于重新生成了一个变量把操作后的结果赋予这个新生成的变量。但是++的话代表改变了对潒本身注意是对象本省,而不是变量本身这个对象指的是内存中存放基本类型的数据的地址所指的内容。而python 自增的模型规定数值对潒是不可改变的。
  • int理论上是每次赋值都创建一个新对象的但是由于使用频繁,为了提升性能避免浪费所有python 自增有个 整数池,默认1~256的數字都属于这个整数池这些每次赋值的时候,是取得池中的整数对象但是其他的除外,如下所示:

我要回帖

更多关于 python 自增 的文章

 

随机推荐