How can this be?

Paul Prescod paul at
Fri Feb 6 02:41:20 CET 2004

r.e.s. wrote:

> My problem is this ...
> Module A contains the definition of a function f.
> Module B contains:
>     from A import *
>     L = [0]
>     print L
>     x = f(L, 'a data string')
>     print L
 > ...
> How can the list L have gotten changed??

You sent a reference to L into the function. The function probably 
mutated it. If you wish the function to work with a copy, try this:

      from A import *
      L = [0]
      print L
      x = f(L[:], 'a data string')
      print L

This is normal and often useful behaviour.

  Paul Prescod

More information about the Python-list mailing list