Bizzare lst length problem

Fredrik Lundh fredrik at pythonware.com
Sun Oct 8 15:38:01 CEST 2006


Ben wrote:

> Ah - I found out why I had cast it to a string. I had not, at that
> point, worked out ho to pass the list by value rather than reference,
> and so was casting to a string as a stopgap measure that I then forgot
> about. Now the problem is fixed after this group told me how to pass a
> list by value (by slicing the entire list)

if you write code that needs to treat a list as a distinct mutable 
value, make sure *your* code makes a copy.  relying on the caller to 
remember to do that in all cases is way too error prone.

in other words, instead of doing

    def function(seq):
        # modify the sequence

    ...

    # must pass in a copy, or things will break in mysterious ways
    function(list(mylist))

do

    def function(seq):
        seq = list(seq) # make a distinct copy
        # modify the sequence

    ...

    function(seq)

</F>




More information about the Python-list mailing list