python的id()函数的一个小方面(转载)
1 >>> a = 2 2 >>> b = 2 3 >>> id(a) 4 21132060 5 >>> id(b) 6 21132060 7 >>> a = 2.5 8 >>> b = 2.5 9 >>> id(a) 10 19622112 11 >>> id(b) 12 29321464
当a,b为2的时候id相同,而为2.5的时候不同,这种情况在string字符串的时候也会出现,即当很短的a,b赋值很短的字符串的时候,它们的id值相同,而很长的则不会;
之后,可以得到一个简单的结论就是:解释器在对值很小的int和很短的字符串的时候做了一点小优化,只分配了一个对象,让它们id一样了。