凡是python的程序员,都看看这个问题。。

  1. >>> a = 256
  2. >>> b = 256
  3. >>> a is b
  4. True
  5. >>> a = 257
  6. >>> b = 257
  7. >>> a is b
  8. False
复制代码
来吧 来吧 ,发表吧。

作者: synchalt   发布时间: 2011-05-20

  1. Python 2.4.3 (#1, Nov 11 2010, 13:30:19)
  2. [GCC 4.1.2 20080704 (Red Hat 4.1.2-48)] on linux2
  3. Type "help", "copyright", "credits" or "license" for more information.
  4. >>> a = 256
  5. >>> b = 256
  6. >>> a is b
  7. False
  8. >>> a = 257
  9. >>> b = 257
  10. >>> a is b
  11. False
复制代码
没问题阿,楼上用什么版本?

作者: blackjimmy   发布时间: 2011-05-20

这个没问题
python使用的对象缓存机制而已。默认的python在init的时候为创建小数list默认[-5-256],
第一次 a,b都在这个范围,所以他们都引用了缓存中的同一个对象
第二次 a, b分别创建新的int对象,即为不同的对象
你可以使用id函数测试或者查看python源码!

作者: ccporxy   发布时间: 2011-05-20