On 12/15/2011 4:00 PM, Ethan Furman wrote:
I don't know if it appears in the docs, but I hear it all the time,
and Guido has said it
This is another place where Python is
inconsistent. We're told, "lists are for homogenous sequences
of varying length, like a C array; tuples are for heterogenous
aggregations of known length, like a C struct." Then we define
a function foo(*args), and Python gives us a tuple! :-(
Where is that in the docs? Sounds like a patch is needed:
"lists are for sequences where items need to be added/removed;
tuples are for sequences/aggregations where items will not be
added/removed once the tuple is created"
I don't want to get too far off the original point, which was:
Python isn't as simple as we'd like to thing, and even smart
beginners can be tripped up by things we've provided to them.
Tuples are for heterogeneous data, list are for homogeneous data.
Tuples are *not* read-only lists.
As Antoine noted, a tuple for 'args' is appropriate, as once args
is created at function call time, we won't be adding or removing