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一样了。

posted @ 2013-12-10 13:25  泉水叮~咚  阅读(254)  评论(0编辑  收藏  举报