Py交易的基本遵循原则.

对于py解释器的优化问题.

py在对值为-5到256之间的对象进行了不可描述的处理.

让我们来看看如何.

>>> a = 32165165
>>> b = 65165165
>>> id(a),id(b)
(2122778497712, 2122776349616)
>>> a is b
False

恩, 看上去没什么问题.

当a和b的值相等时会发什么,在-5~256之间.

>>> a = 1
>>> b = 1
>>> a is b
True
>>> id(a), id(b)
(1553231328, 1553231328)

再来一个.

>>> a = 257
>>> b = 257
>>> a is b
False
>>> id(a), id(b)
(2122782382032, 2122782382096)

py会在对象值超出-5~256这个范围时才会把实际的多个对象当成多个对象.所以a,b的ID值不同.

还有个坑.

>>> a,b = 257,257
>>> a is b
True
>>> id(a), id(b)
(2122778497712, 2122778497712)

猜你喜欢

转载自blog.csdn.net/One_of_them/article/details/79431284
今日推荐