您的位置:首页 > 编程语言 > Python开发

python 同一个float值,id不同

2016-06-26 11:41 375 查看
>>> 10000 is 10000

True

>>> a = 10000

>>> b = 10000

>>> a is b

False

>>> a = 1

>>> b = 1

>>> a is b

True


解释上面这个例子:
第一个,两个10000 PyIntObject都会在编译的时候就生成,而且因为他们被编译为了一个PyCodeObject所以两个10000是一样滴
第二个,当你在交互式解释器这么输入,a和b 所指向的10000会被存入两个不同的PyCodeObject,所以是不同的
第三个,两个1,存入了不同的PyCodeObject,可是CPython有小整数Cache, 所以不管生成几次1,都是一样滴
这些不同取决于交互式解释器的处理方式,所以测试这类内容,不要用交互式解释器,它里面做了一些不同滴事情。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python float id不同