在原生的编译器中,若是进行以下定义
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中测试,一样值,一般都是同一个内存地址。优化
自学,最痛苦的就是坚持!对象