A question on modification of a list via a function invocation

Rustom Mody rustompmody at gmail.com
Mon Sep 4 10:34:51 EDT 2017


On Monday, September 4, 2017 at 5:58:18 PM UTC+5:30, ROGER GRAYDON CHRISTMAN wrote:
> >Does a poor job AFAIAC of explaining the difference between foo and bar in
> foll>>>> def foo(x): x += 2
> >>>> def bar(x): x.append(2)
> >>>> a=10
> >>>> b=[10]
> >>>> foo(a)
> >>>> a
> >10
> >>>> bar(b)
> >>>> b
> >[10, 2]
> >>>> 
> Or with just one function: >>> def baz(x,y):
>  x += y 
> >>> a = 10
> >>> b = [10]
> >>> baz(a,a)
> >>> a
> 10
> >>> baz(b,b)
> >>> b[10, 10]

Ha Ha!  Lovely

[I was about to ask Chris if he is being serious about relating this to the 
presence of '=' ]

However if you desugar the += into __iadd__ then someone may argue
the presence of the = is an optical illusion



More information about the Python-list mailing list