Modifying Class Object

Steven D'Aprano steven at REMOVE.THIS.cybersource.com.au
Wed Feb 10 16:46:19 EST 2010


On Wed, 10 Feb 2010 21:02:14 +0100, Alf P. Steinbach wrote:

> "pointer" refers to a copyable reference value as seen from the Python
> level, in the same way as "pointer" is used by e.g. the Java language
> spec.

Python doesn't have "copyable reference values" in the Python level. It 
has objects.

It seems to me that your argument is based on the premises:

(1) that the "value" of a variable is not what 99.99% of people would 
describe as the value, but is some hidden, implementation dependent 
"pointer" instead;

(2) that "pointer" doesn't necessarily mean what 99% of people who 
learned C or Pascal understand by pointer;

(3) that mangling both common English and programmers' expectations in 
that fashion is somehow more accurate and more useful than using the 35 
year old term "call by object" (or "call by object reference");

(4) and, presumably because of some deeply-held belief that the only 
parameter passing strategies that we're allowed to talk about are "call 
by value" and "call by reference", no matter how much violence we do to 
the concept of both value and pointer, Python and Java must be call-by-
value since they clearly aren't call-by-reference.


Of these, the only one that I consider value is that Python and Java are 
not call-y-reference. Otherwise, I reject all these premises, and 
consequently none of your arguments make the slightest sense to me. You 
keep talking about Python operating on pointers. I've never used a single 
pointer in 10+ years of Python coding, no matter how many times you tell 
me I have. What the implementation of the Python virtual machine does is 
not what I do high-level Python code, and the implementation is not the 
language.



-- 
Steven



More information about the Python-list mailing list