Mark Wooding wrote: > Steven D'Aprano <ste...@remove.this.cybersource.com.au> wrote: > >> The only tricky thing is that items 1, 2 and 3 can be inside two >> different boxes at the same time. There's no obvious real world analogy >> to that without the boxes being nested. This ability for objects to be in >> two places at once (or even to be inside themselves!) is one of the few >> reasons why Python's use of references in the implementation needs to be >> mentioned. > > Ahh. So it /does/ need to be mentioned after all. But you're wrong: > it's not an implementation detail: it's an essential part of the > language semantics. > > A better analogy. The objects are scattered across the floor. No > object is contained in another. However, we have a plentiful supply of > bits of string, each of which is tied to a Teflon-covered paperweight at > one end and has a blob of Blu-Tack on the other. Instead of putting > something in a box directly, what we do is grab a piece of string, stick > the Blu-Tack to the thing, and put the paperweight in the box. This > way, we can stick several bits of string to the same object and put the > paperweights in different boxes. Indeed, nothing stops us sticking two > bits of string to a box, and putting both paperweights inside that same > box. But fitting a box into itself twice requires origami skills that > frighten me. > > The Teflon stops the Blu-Tack from sticking to the paperweights, 'cos > you're not allowed to do that. > > There's a daemon who comes around periodically and cleans up the mess of > paperweights which aren't in boxes, and tidies away things which don't > have any string stuck to them any more, but really he's just an > implementation detail and you wouldn't need him if your floor was big > enough and you had enough bits of sufficiently long string. > Thanks for nailing that one. I have long felt the semantics of Python could be but poorly served without the use of the term "reference" (and indeed I have pointed out int he past that the language reference manual feels free to use the term liberally), but I wasn't able to persist long enough to bring the conversation to this conclusion (except that I am pretty sure this *won't* be a conclusion ;-)
regards Steve -- Steve Holden +1 571 484 6266 +1 800 494 3119 Holden Web LLC http://www.holdenweb.com/ -- http://mail.python.org/mailman/listinfo/python-list