On 01/-10/-28163 02:59 PM, Joel Goldstick wrote:
2011/3/19 Yaşar Arabacı<yasar11...@gmail.com>
a=5
b=5
a == b
True
a is b
True
My question is, why "a is b" is true. What I expected it to be is that, a
and b are different things with same value.
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor
Oops. I misread your post. I (why I don't know) thought I saw a = 5, b =
4.
a and b are names. Python has an integer of 5 from a = 5, so it just refers
to that same object with b.
Sometimes a particular implementation of Python will reuse the same
object, if it's immutable. So certain strings and certain integers may
be reused, presumably to save some space. But you cannot count on it.
If you tried the same thing with a value of 741, you'd probably get a
different answer. It's not time-efficient for Python to go hunting
through all the existing objects to find a match, so this optimization
is done pretty narrowly.
You seldom want to use 'is' on an integer or a string anyway. Use ==
unless it really matters, which is usually either a custom object, or a
singleton like True.
DaveA
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor