Late-binding of function defaults (was Re: What is a function parameter =[] for?)

Random832 random832 at fastmail.com
Wed Nov 25 19:52:55 EST 2015


On 2015-11-25, Ben Finney <ben+python at benfinney.id.au> wrote:
> That is, the ‘2’ in ‘cartesian_point = (2, 3)’ means something different
> than in ‘cartesian_point = (3, 2)’.
>
> Whereas the ‘2’ in ‘test_scores = [2, 3]’ means exactly the same as in
> ‘test_scores = [3, 2]’.
>
> If each position in the sequence gives the value there a different
> menaning, use a tuple; if not, use a list.

I don't think that's really right. The absence of first-class
multisets in python does mean that lists get "abused" for that
purpose, but I don't think that means that there's no legitimate
use-case for a list (i.e. a mutable sequence in which position is
significant).

The difference between a tuple and a list is that one is mutable
and the other is not. The difference you are describing is
between a list and a multiset (or a tuple and an immutable
multiset).




More information about the Python-list mailing list