col speed wrote:
On 8 March 2012 18:51, Steven D'Aprano <st...@pearwood.info> wrote:
This makes sense, and is easy to understand. Now for the real boggle:
py> a = 9912346; b = 9912346
py> a is b
True
Can you guess what is going on here?
(Answer will follow later.)
Because it's on the same line and there are 2 variables with the same
int, it gets cached???
Almost correct, but well done.
Yes, the trick is that they are on the same line.
But you're *almost* correct, because the value doesn't actually gets cached.
It only gets re-used in the context of that one line. If you then follow with
a second line using the same 9912346, it gets a different ID.
All of these details are implementation tricks. They are subject to change
without notice, and the exact rules are not documented anywhere (except
perhaps in the source code) so there is no language promise that they will
apply. But they are interesting little tricks nevertheless.
--
Steven
_______________________________________________
Tutor maillist - Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor