Rainer Deyke, el 24 de julio a las 11:55 me escribiste: > Leandro Lucarella wrote: > > !? It's true that in Python all are references, but there are inmutable > > objects in Python, like int, float, strings and tuples. From a practical > > POV it exactly the same as value types, if you do: > > Immutable reference types are still reference types, and follow the same > rules as other reference types. You just can't modify them. The > assignment operator *always* rebinds a reference, regardless of the > mutability or immutability of any objects involved.
That's true, conceptually, but when you use the variables, you use them as value types, with the same advantages and limitations. > The one exception is that operators like '+=' will create a new object > when applied to immutable types, but modify existing objects when > applied to mutable objects. And, yes, this bothers me in Python. A lot. How do you note that? Really. Python inmutables have value semantics. > But that's still not half as bad as D, where something simple like 'a = > b; a.x = 5;' can have two completely different meanings depending on > whether 'a' is a reference type or a value type. Yes, that's true, but this is a common problem. Think of operator overloading... Even in Python that could mean *anything* (__getattr__). -- Leandro Lucarella (luca) | Blog colectivo: http://www.mazziblog.com.ar/blog/ ---------------------------------------------------------------------------- GPG Key: 5F5A8D05 (F8CD F9A7 BF00 5431 4145 104C 949E BFB6 5F5A 8D05) ---------------------------------------------------------------------------- Y será el día en que la electricidad deje de ser rayo y sea depilador femenino. -- Ricardo Vaporeso
