Puzzled by "is"
jergosh at wp.pl
Thu Aug 9 22:50:16 CEST 2007
> Why? Because.
> Seriously, it's just an optimization by the implementers. There is no
> need for more than one empty tuple, since tuples can never be modified
> once created.
> But they decided not to create (1, ) in advance. They probably knew that
> hardly anybody would want to create that tuple ;-) [Seriously: if you
> started trying to predict which tuples would be used you would go
> insane, but the empty tuple is the most likely candidate].
That's just theorisation but I'd rather expect the interpreter simply
not to create a second tuple while there already is an identical one.
This could save some memory if the tuple was large (Although by the same
token comparison of large tuples can be expensive). Admittedly the empty
tuple is a special case but then 'Special cases aren't special enough to
break the rules'.
A bit odd.
More information about the Python-list