On Tue, Oct 6, 2009 at 11:08 AM, Wayne <sri...@gmail.com> wrote: > On Tue, Oct 6, 2009 at 9:58 AM, Dave Angel <da...@ieee.org> wrote: >> >> <snip> >> >> No, because you're not assured that all integers that are equal are the >> same object. Python optimizes that for small integers, but there's no >> documented range that you can count on it. >> > > But for this specific case - checking a return code against zero, should it > still be considered unreliable?
Yes. It is undocumented, implementation-specific behaviour and you should not depend on it without good reason. In this case, there is no reason at all to prefer "if x is 0" to "if x == 0". > The only case that you are looking for > correctness is 0 == 0, any other case should evaluate as false, so I guess > the question is does python always optimize for zero? Any other optimization > is irrelevant, AFAIK. Define "always". In all past and future versions of every implementation of Python? Unlikely and unknowable. In all current versions of CPython? Yes, AFAIK. Kent _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor