> > 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. Best regards, Greg -- http://mail.python.org/mailman/listinfo/python-list