Modifying Class Object

Arnaud Delobelle arnodel at googlemail.com
Mon Feb 8 08:19:59 CET 2010


"Alf P. Steinbach" <alfps at start.no> writes:

> * Chris Rebert:
>> On Sun, Feb 7, 2010 at 5:05 PM, T <misceverything at gmail.com> wrote:
>>> Ok, just looking for a sanity check here, or maybe something I'm
>>> missing.  I have a class Test, for example:
>>>
>>> class Test:
>>>    def __init__(self, param1, param2, param3):
>>>        self.param1 = param1
>>>        self.param2 = param2
>>>        self.param3 = param3
>>>
>>> Next, I have a dictionary mytest that contains instances of Test.  If
>>> I want to modify one of the Test instances within my dictionary, I
>>> have to rewrite the entire entry, correct (since Python passes by
>>> value, not reference)?
>>
>> Incorrect; Python uses neither. See
>> http://effbot.org/zone/call-by-object.htm for a excellent explanation
>> of what Python does use.
>
> Hm. While most everything I've seen at effbot.org has been clear and
> to the point, that particular article reads like a ton of obfuscation.
>
> Python passes pointers by value, just as e.g. Java does.


Please! Not this again! This has been discussed to death and beyond more
than enough times.  Go search the c.l.p archives, read it all, and I'm
sure you won't want to add anything anymore.

-- 
Arnaud



More information about the Python-list mailing list