python3中关于共享引用的奇怪之处

时间:2015-02-24 15:11:09

标签: python oop object python-3.x python-internals

我在python代码下运行,a和b将指向我所知的相同对象。

>>> a=10
>>> b=10
>>> a is b
True

但是当我将10更改为更大的数字(例如100000)时,结果很奇怪。

>>> a=100000
>>> b=100000
>>> a is b
False

似乎python在内存中创建了两个100000。

然后我尝试下面的代码:

>>> lst=[10,10]
>>> lst[0] is lst[1]
True

>>> lst=[100000 ,100000 ]
>>> lst[0] is lst[1]
True

在列表中,数字(10或100000)都在同一个对象中。

这就是我的困惑。 为什么当数字越大,Python创建两个对象?为什么在List中,它仍然使用一个副本?

0 个答案:

没有答案