On 08/10/2012 06:12 AM, Mok-Kong Shen wrote: > Am 10.08.2012 11:48, schrieb Roman Vashkevich: >> [snip] > >The function .... It takes list by reference and creates a new local > > str. When it's called with listb and strb arguments, listb is passed > > by reference and mutated. A string "sss" is concatenated with an > > empty local str. Nothing more happens. Since local str is not > > returned by xx(), it can not be expected to be printed out in the > > statement that follows. What is printed out in the print statement is > > the mutated listb and the global strb. > > Thanks for the explanation of the output obtained. But this means > nonetheless that parameters of types lists and strings are dealt with > in "inherently" (semantically) different ways by Python, right? > > M. K. Shen >
Nothing to do with parameters. Lists are mutable, and strings are immutable, so += behaves differently. -- DaveA -- http://mail.python.org/mailman/listinfo/python-list