On Wed, 18 Jan 2006 17:03:23 +0100 in comp.lang.python, Claudio Grondi <[EMAIL PROTECTED]> wrote:
[...] > > >>> a = 1L > >>> b = 1L > >>> a is b >False > >Python fails to reuse the long integer object. It would be interesting >to know why, because it seems to be strange, that in case of integers it >does (but not always and I don't know actually when it happens and what >it depends upon). Reusing long integers would make much more sense than >reusing plain integers when considering memory spent on storage. >Hmmm... I suspect it's a matter of practicality beating purity. Consider a = 1L b = 10L ... much code ... c = b/5 ... more code ... d = c * 3 ... still more code ... e = a * 6 ... and now the question ... print d is e Do you really want the interpreter, on each long integer assignment operation (5 in the above example), to find all the long integer objects, perform a comparison, and re-use objects that compare equal? Or would you rather the "is" operator alias "==" for longs? Are either of these options really useful? Regards, -=Dave -- Change is inevitable, progress is not. -- http://mail.python.org/mailman/listinfo/python-list