* Diez B. Roggisch:
Am 08.02.10 02:51, schrieb Alf P. Steinbach:
* Chris Rebert:
On Sun, Feb 7, 2010 at 5:05 PM, T <misceveryth...@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.

There, it needed just 10 words or so. :-) Or perhaps some more words to
point out that in the Java language spec those reference values are
called pointers, but that this terminology isn't (apparently) used for
Python, and isn't even well known among Java programmers. But that's
just one extra little para.

One just has to be clear about exactly what it is that's passed by value.

Not Python objects, but references (pointers) to them, the id(o) values.

Whao. You just needed 10 words, plus a paragraph to explain something in terms of a spec that's just about 600 pages strong. Amazing display of conciseness, and certainly the most valuable thing for some programming newbie to work with. Thanks!

I apologize for assuming that "pointer" is a known word to [c.l.p.] denizens.

But, if it can help, although for clarity I had to provide a concrete reference, you don't need to read the complete Java language spec to understand that word.

Just Google it.


Cheers & hth.,

- ALf
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to