A class question
Bruno Desthuilliers
bruno.42.desthuilliers at wtf.websiteburo.oops.com
Tue Oct 30 04:54:22 EDT 2007
Hrvoje Niksic a écrit :
> Bruno Desthuilliers <bruno.42.desthuilliers at wtf.websiteburo.oops.com>
> writes:
>
>>> It seems to me that in recent times more Python beginners come from
>>> a Java background than from a C one.
>> Java does have "container" variables for primitive types, and even
>> for "references", Java's variables are more than names - they do
>> hold type informations too. Now I don't pretend to know how this is
>> really implemented, but AFAICT, and at least from a cognitive POV,
>> Java's variables model looks very close to the C/C++ model.
>
> While Java's variable declarations bear a superficial (syntactical)
> similarity to C, their semantics is in fact equivalent to the
> object-reference semantics we know in Python. They implicitly refer
> to objects allocated on the heap and, just like in Python, the same
> object can be referenced by multiple variables.
You're talking about reference types here - not primitive types. And
even then, from what I remember (not having done any Java these last 4
years at least), Java's reference types are much closer to C++
references than to Python.
> If Java's model were
> close to C/C++, that would not be possible without explicit
> pointers/references
The reference is implicit for non-primitive types.
> since an object would be "contained" by the
> variable.
>
> Variables holding primitive types don't really influence the
> variable/object relationship, since the values they hold are by nature
> immutable and without identity.
Python's immutable types instances does have an identity, and follow the
same rules as mutable types instances - mutability set aside of course.
Which is not the case with Java, where primitive types and reference
types follow distinct rules. I'll check this out (not having done Java
for a couple years) and come back, but I certainly remember Java's model
as being way closer to C++ than to Python.
More information about the Python-list
mailing list