Modifying Class Object
grflanagan at gmail.com
Mon Feb 8 09:02:43 CET 2010
Arnaud Delobelle wrote:
> "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.
More information about the Python-list