[Edu-sig] Getting it going

David Scherer dscherer@cmu.edu
Fri, 4 Feb 2000 09:44:29 -0500


I haven't introduced myself yet, and I'm not addressing a very central
issue, but...

> 	* how to explain things in books, lik a variable is a box with a
> 	  sticker on it, a dictionairy is a... a class is a...

A variable in Python isn't a box with a sticker on it, it's just a sticker.
You can stick multiple stickers on the same thing, but there is still only
one of the thing.  This matters when the object is mutable:

a = [3]   # a list [3] with the sticker "a" on it
b = a     # now the list has stickers "a", "b" on it

a[0] = 4  # the list is mutated to [4]
          # and still has stickers "a", "b"

print a   # [4]
print b   # [4]

This is extraordinarily hard to explain with variables as boxes.  How can I
put one object in two boxes, neither of which contains the other?

Of course, you can explain Python's semantics with boxes with stickers
containing pointers, but that's a rather needlessly complicated approach!

Dave Scherer