Re: Code to Joy in The Economist (June/July 2018)

Wes Turner <[email protected]>
Newsgroups gmane.comp.python.education
Message-ID <CACfEFw__eE4iic7MxsF8553-ms7GMi-LK22vZqvXa7YAn6-98w@mail.gmail.com>
a = 1
print(id(a))
c = 2
a = b = c
print(id(a))
assert id(a) == id(b) == id(c)
assert a == b == c == 2

s1 = 'str1'
s1_id1 = id(s1)
s1 = s1 '23'
s1_id2 = id(s1)
assert s1_id1 != s1_id2


On Sunday, June 3, 2018, Naomi Ceder <[email protected]> wrote:

> 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 <[email protected]> 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 <[email protected]>
>> 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 <[email protected]> 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
>> >> [email protected]
>> >> 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
>> > [email protected]
>> > 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
[email protected]
https://mail.python.org/mailman/listinfo/edu-sig
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.