Steven D'Aprano <steve+comp.lang.pyt...@pearwood.info>: > Rustom, if you are serious about this approach, then the implication > is that if I execute "x = 23" in Python, and I ask you what the value > of x is, you should answer something like "146588120" (that's the > implementation dependent "value", i.e. the address of the int 23).
Steven, you are trying to be facetious but end up making good points. The "canonical" Python semantics actually states that x = 23 means: An int object with the numeric value 23 is constructed or fetched from a cache. A reference to the object is assigned to a variable whose name is "x". > it's just *nuts*, and all because the Java folks are unwilling or > unable to distinguish between the language semantics and the > implementation of the language. And you're falling into the same hole. I have yet to see a high-level language that has defined its data model without resorting to "locations", "slots" and pointers of sorts. It certainly is possible (lambda calculus doesn't make any reference to objects or pointers) but hardly any alternative explanation is more appealing to programmers' tastes and imagination than the concrete image of boxes and arrows. Marko -- https://mail.python.org/mailman/listinfo/python-list