As Kirby says, of course the data does go somewhere, and that "somewhere" could be thought of as a container. But "creating" a variable name in Python doesn't in itself create a container. A lot of beginners will assume that: a = 1 a = b = c will actually create three objects, (or containers, or buckets). This leads to a flawed mental model of what Python actually does, with unexpected results for mutable types.
Cheers, Naomi On Sun, 3 Jun 2018 at 13:56, Carl Karsten <c...@nextdayvideo.com> wrote: > > But you are totally right, Kirby - we've got to get him off of this > notion of variables as containers. "Post-its, not buckets" is the way I put > it, but I rather like the luggage tag metaphor as well. > > You lost me here. What's wrong with bucket? > > > On Sat, Jun 2, 2018 at 3:25 PM, Naomi Ceder <naomi.ce...@gmail.com> wrote: > > It is a lovely article. Andrew Smith was at PyCon and I had dinner with > him > > and Nicholas one evening and also sat down and chatted with Andrew on a > > couple of other occasions. > > > > He's a smart guy and a likable one, and he is very taken with coding in > > general, Python in particular, and especially the Python community, and > he > > plans to keep going beyond just that article. I fully expect we'll see > and > > hear more of Andrew Smith's adventures with Python over the coming year > or > > two. > > > > But you are totally right, Kirby - we've got to get him off of this > notion > > of variables as containers. "Post-its, not buckets" is the way I put it, > but > > I rather like the luggage tag metaphor as well. > > > > And for those of us who are geeks "of a certain age" I can also recommend > > his book Moondust, which is the story of him tracking down and talking to > > all of the surviving Apollo astronauts in the early 2000's. > > > > Cheers, > > Naomi > > > > On Sat, 2 Jun 2018 at 15:13, kirby urner <kirby.ur...@gmail.com> wrote: > >> > >> > >> > >> One of my screen scraper friends (always reading) just forwarded this > >> link: > >> > >> https://www.1843magazine.com/features/code-to-joy > >> > >> A highly literate middle aged writer tackles programming from zero and > >> winds up in Python after a pilgrimmage through Javascript, and uses the > >> Twitter API. He meditates on what learning to code might mean to a > fully > >> developed adult such as himself (connects to Andragogy **). > >> > >> Nicholas Tollervey, sometime edu-sig poster and Micro:bit avatar, is > very > >> much a hero in this story, living up to the ideal of a Pythonista as > >> > >> (A) not religiously dogmatic (re "language wars") yet > >> (B) having enthusiasm for sharing Python (without too much > proselytizing). > >> > >> Bravo on a stellar performance! > >> > >> Quincy Larson of freeCodeCamp fame is another champion of openness and > >> accessibility (and good advice). I get his emails in my inbox with > >> gratitude, though I don't follow all the links (helpfully labeled with > >> estimated reading times, for my internal scheduler -- thanks for the > >> meta-data!). > >> > >> In the interests of sparking some edu-sig type discussion (this could > fork > >> to a new thread), the author Andrew Smith writes: > >> > >> "Variables are best (if imperfectly) understood as the vessels within > >> which pieces of data are contained, ready to be worked on. Of many > possible > >> data types, the most straightforward are numbers and strings, string > being > >> the name given to text." > >> > >> In my classes I readily acknowledge the "variable as container" metaphor > >> is apt, and agree that Python objects take up memory and so object == > >> container (with id) is OK too. > >> > >> However, the name --> object mapping of a namespace is better imagined > as > >> "luggage tag -> suitcase" relationship. It's not like the Python name > itself > >> is the container on the heap. > >> > >> The object in memory is a possibly fat heavy suitcase, stuffed with > stuff > >> (e.g. an HttpResponse). However the name is more a label, like a > luggage > >> tag on a suitcase (and this is the point). > >> > >> Name : Object :: Luggage Tags :: Suitcase > >> > >> One suitcase (object) may have many names (connects to garbage > collection > >> discussion). However at any one moment, a name points to only one > object > >> (the same name in different modules, both running, still count as > different > >> names -- scope matters). > >> > >> So yeah, the object itself is a "container" but what it contains may be > >> tags to other objects. > >> > >> Without this separation of "names" from "objects" there's an inevitable > >> tendency to imagine copies, as how can we have two bowls or boxes with > >> exactly the same content. > >> > >> We don't have a visual metaphor for "two suitcases containing exactly > the > >> same clothes at the same time". > >> > >> But we do understand "one suitcase having two or more luggage tags." > >> > >> Surely we have two copies, albeit clones of the same thing. Not so in > >> Python though. Python is biased against making gratuitous copies of > >> anything. Keep is spare! (sparse if possible). Don't clutter memory > with > >> excessive redundancy. > >> > >> > >> Kirby > >> > >> ** > >> http://4dsolutions.net/presentations/pycon2013.pdf > >> > >> > >> _______________________________________________ > >> Edu-sig mailing list > >> Edu-sig@python.org > >> https://mail.python.org/mailman/listinfo/edu-sig > > > > > > > > -- > > Naomi Ceder > > > > @NaomiCeder • https://www.linkedin.com/in/naomiceder/ > > https://www.manning.com/books/the-quick-python-book-third-edition > > > > _______________________________________________ > > Edu-sig mailing list > > Edu-sig@python.org > > https://mail.python.org/mailman/listinfo/edu-sig > > > -- Naomi Ceder @NaomiCeder • https://www.linkedin.com/in/naomiceder/ https://www.manning.com/books/the-quick-python-book-third-edition
_______________________________________________ Edu-sig mailing list Edu-sig@python.org https://mail.python.org/mailman/listinfo/edu-sig