[Python-ideas] Python Users Aren't Perfect

Ned Batchelder ned at nedbatchelder.com
Thu Dec 15 22:06:59 CET 2011


On 12/15/2011 4:00 PM, Ethan Furman wrote:
> Ned Batchelder wrote:
>> 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 know if it appears in the docs, but I hear it all the time, and 
Guido has said it 
(http://mail.python.org/pipermail/python-dev/2003-March/033964.html):

    Tuples are for heterogeneous data, list are for homogeneous data.
    Tuples are *not* read-only lists.

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.

--Ned.

> ~Ethan~
>
> PS
> 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 from it.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20111215/427b6443/attachment.html>


More information about the Python-ideas mailing list