Modifying Class Object

Alf P. Steinbach alfps at start.no
Mon Feb 8 23:01:16 EST 2010


* Stephen Hansen -> Alf P. Steinbach:
>
> [snip]
> To say, "pass by value" implies things to people. It describes a sort of 
> world where I'm a function about to do some work, and on my desk I have 
> a series of boxes with names on it. It describes an environment where 
> someone comes over and drops something into each of my boxes. The 
> contents of these boxes are mine alone!

Then, when the imprecision makes people misunderstand, one should not say that.

One should then be more precise.

One should say /what/ is passed by value.


[snip]

>  >>> import copy
>  >>> def doit(a):
> ...     a += a
> ...     return a
> ... 
>  >>> test1 = 1
>  >>> test2 = doit(test1)
>  >>> test1
> 1
>  >>> test2
> 2
>  >>> test3 = [1]
>  >>> test4 = doit(test3)
>  >>> test3
> [1, 1]
>  >>> test4
> [1, 1]
> 
> I know you already know this, but the point is: you're -hurting- other 
> peoples understanding by using terms like this that don't apply to 
> Python's specific nature.

The terms apply very well to Java. And Java has the identical parameter passing 
mechanism for class type objects. Hence, the argument is bogus.


Cheers & hth.,

- Alf

PS: I cannot see any of your postings on Usenet. So I just sort of grabbed this 
from GMane and posted to Usenet. Hopefully you'll see it back at the list. :-)



More information about the Python-list mailing list