在原生的編譯器中,若是進行以下定義
a=1000
b=1000
print id(a),id(b)
會發現,兩個的結果是不一樣的。id()是用來查看對象的內存地址的,若是咱們定義大量的int變量,就有了內存溢出的可能性。python
查了下,python對於小整數對象,[-5, 257),是預分配內存地址的。若是超出這個範圍則使用通用的緩衝池,對於大整數則有PyIntBlock,用來做緩衝池。因此出現了咱們上述的現象。eclipse
對int類變量值相同的狀況,若是使用a=b=1000來定義,id(a)和id(b)的內存地址就是同一個了,能夠必定程度上下降溢出的可能。測試
非原生的編譯器中,貌似對上述狀況進行過優化。在eclipse中測試,一樣值,一般都是同一個內存地址。優化
自學,最痛苦的就是堅持!對象