[Edu-sig] Re: Grokking Python

2024-03-05 Thread C . Cossé
Are some of these dunder methods new?
-8<-
>>> d=Dog()
I am a Dog
>>> d
<__main__.Dog object at 0x7fd1cfaac910>
>>> d.__
d.__class__(  d.__doc__ d.__getattribute__(
d.__init_subclass__(  d.__ne__( d.__repr__(
d.__subclasshook__(
d.__delattr__(d.__eq__( d.__gt__( d.__le__(
d.__new__(d.__setattr__(d.__weakref__

d.__dict__d.__format__( d.__hash__(   d.__lt__(
d.__reduce__( d.__sizeof__(
d.__dir__(d.__ge__( d.__init__(
d.__module__  d.__reduce_ex__(  d.__str__(
>>> d.__
-8<-



On Sat, Mar 2, 2024 at 3:37 PM Wes Turner  wrote:

> They're dunder methods; double-underscore
>
> /? site:docs.python.org "dunder" methods
> https://www.google.com/search?q=site%3Adocs.python.org+%22dunder%22+methods
>
> On Wed, Feb 14, 2024, 10:50 AM kirby urner  wrote:
>
>>
>> Long termers here will likely remember my fave Pythonic Pedagogy: to
>> introduce special names as __ribs__.
>>
>> Because pythons have lots of __ribs__.
>>
>> I've not abandoned this idea, just haven't been redundantly reposting
>> about it here for some time.
>>
>> But now...
>>
>> Why not share a couple "friend links" (nothing counts against a quota, no
>> logging in I hope)?:
>>
>>
>> https://kirbyurner.medium.com/grokking-python-9f96140c1e07?sk=d1ec6762e753d5c79106faf1669fcb04
>>
>>
>> https://kirbyurner.medium.com/pythons-rib-cage-e4ff16cf3a74?sk=3e59d2356de6a13b42c9cf61d4d6a308
>>
>> A two parter on Medium. I'm getting some claps. I can take criticisms too.
>>
>> Kirby
>>
>> ___
>> Edu-sig mailing list -- edu-sig@python.org
>> To unsubscribe send an email to edu-sig-le...@python.org
>> https://mail.python.org/mailman3/lists/edu-sig.python.org/
>> Member address: wes.tur...@gmail.com
>>
> ___
> Edu-sig mailing list -- edu-sig@python.org
> To unsubscribe send an email to edu-sig-le...@python.org
> https://mail.python.org/mailman3/lists/edu-sig.python.org/
> Member address: cco...@gmail.com
>
___
Edu-sig mailing list -- edu-sig@python.org
To unsubscribe send an email to edu-sig-le...@python.org
https://mail.python.org/mailman3/lists/edu-sig.python.org/
Member address: arch...@mail-archive.com


[Edu-sig] Re: Grokking Python

2024-03-04 Thread kirby urner
On Mon, Mar 4, 2024 at 1:09 AM DL Neil via Edu-sig 
wrote:

> On 4/03/24 06:30, kirby urner wrote:
> > On Sat, Mar 2, 2024 at 3:37 PM Wes Turner  > > wrote:
> >
> > They're dunder methods; double-underscore
> >
> >
> > Certainly they are and my intro definitely includes this information.
> >
> > Check out the following Dog class, endowed with two of Python’s “magic
> > methods” also known as: “dunder methods” (with “dunder” being short for
> > “double underline”) or “special methods”.
>
>

In composing that post I dragged and dropped the JPG showing the actual
source code for said Dog class, as it appears in Medium, but perhaps
embedded pictures are not encouraged by HyperKitty's current settings, I
wouldn't know.

I was a nominal listowner here for a short time but then lost those
credentials somewhere along the way, while still being able to post.
Pleased to meet you mice dancer.  A prof in New Mexico playing with
ChatGPT4 just sent me what it says about me:

https://flic.kr/p/2pBi659  (may be magnified)

Lets I wasn't prepared for the Mailman 3 slash HyperKitty overhaul, which
isn't to say anything against it happening. So what if I was unprepared?
That happens a lot. Stuff happens.



>
> Please read "Why naming things is hard"
> (https://hilton.org.uk/blog/why-naming-things-is-hard) - and yes there
> is any number of similar articles.
>
>

OK, done.


The pertinent quotation is "There are only two hard things in Computer
> Science: cache invalidation and naming things." (Phil Karlton).
>
> When training, the difficulty of choosing names is magnified by the
> difficulty of choosing examples. Short, understandable, apparent,
> illustrative, etc...
>
> So, here's a (Socratic) question: have you ever met a computer scientist
> or programming professional who has had to write code about a dog's
> stomach, or even the other popular one: a bowl of fruit?
>
> Next Socratic question: could we, or should we, choose more realistic
> examples (and names)? Yes, high schoolers have little experience of the
> world and of commerce. So, talking of products and minimum order
> quantities might be a stretch. However, there are plenty of examples
> where we can talk about class Person, and either a wallet which we'd
> like filled, or a list of skills being learned, for example.
>



Ah so, it's the fact that I'm doing a Dog in particular that maybe irks
ya.  Not well-grounded in a professional use case.

Sometimes I go straight to a Python class (i.e. snake) and do the same
thing with the stomach (append, maybe pop from).

Typically I'll do an eat method and then show how __call__ might be
substituted for eat( ) or even made a synonym.

The idea being these creatures have __ribs__ being vertebrates, and ribs
connote a spinal cord, which is the seat of reflex reactions i.e. verb
actions, responses to stimuli (being called in various ways).

Snakes have lots of ribs. A mnemonic, but one not widespread in the
literature (better for me that way? -- I stand out).

The idea being:  thinking in terms of objects was meant to meet you
halfway. Think of the types of objects you know from being alive. Know any
dogs?  The term "object oriented" is not meant to be mysterious. It shares
a lot with English grammar i.e. noun.verb(args). The parens look like a
mouth turned sideways and they "eat" arguments (if any are provided).

Typically humans have more experience with dogs than with programming
languages by their teen years, though not always.

Lets help you think about Python in terms you already understand, given
you're a Person inheriting design attributes of Mammals (or more generally
an Animal) in the process.

So, did I learn this Pythonic Andragogy from actual practicing computer
programmers who've devoted their whole lives to being good at programming
(I was pretty good -- made a decent living)?  They're not my principal
audience. How about computer scientists? Nope, they already know this stuff.

My audience is more "English speakers" although I presume the stuff readily
translates. They may not wish to become coders, ever (but since when did
life obey mere wishes?). I was a philosophy major myself although at
Princeton we looked down on the word "major" for some reason.

After we have a Dog, Snake and Cat class, I tend to hoist the eat and even
birth methods (__init__) to an Animal superclass, leaving these now
subclasses of Animal to __repr__ themselves, and do things specific to
their species, such as bark or meow.

__repr__ could be written more generally though, making use of
type(self).__name__ for like "Dog('rover')" output, even from Animal.

See:
https://github.com/4dsolutions/DigitalMathematics/blob/master/grok_python.py

Wait, am I saying that Dog's have a self?  Ah, now we're starting to think
more analogically, like English majors. Excellent. I might substitute the
word 'me' for self, or a Chinese character for 'ego' (showing off Unicode)
-- see Replit for examples.

As long as 

[Edu-sig] Re: Grokking Python

2024-03-04 Thread DL Neil via Edu-sig

On 4/03/24 06:30, kirby urner wrote:
On Sat, Mar 2, 2024 at 3:37 PM Wes Turner > wrote:


They're dunder methods; double-underscore


Certainly they are and my intro definitely includes this information.

Check out the following Dog class, endowed with two of Python’s “magic 
methods” also known as: “dunder methods” (with “dunder” being short for 
“double underline”) or “special methods”.



Please read "Why naming things is hard" 
(https://hilton.org.uk/blog/why-naming-things-is-hard) - and yes there 
is any number of similar articles.


The pertinent quotation is "There are only two hard things in Computer 
Science: cache invalidation and naming things." (Phil Karlton).


When training, the difficulty of choosing names is magnified by the 
difficulty of choosing examples. Short, understandable, apparent, 
illustrative, etc...


So, here's a (Socratic) question: have you ever met a computer scientist 
or programming professional who has had to write code about a dog's 
stomach, or even the other popular one: a bowl of fruit?


Next Socratic question: could we, or should we, choose more realistic 
examples (and names)? Yes, high schoolers have little experience of the 
world and of commerce. So, talking of products and minimum order 
quantities might be a stretch. However, there are plenty of examples 
where we can talk about class Person, and either a wallet which we'd 
like filled, or a list of skills being learned, for example.


The industry has a phrase, to do with using our own software creations: 
"eating our own dog-food". Ghastly! Maybe? That's about the closest most 
of us will ever come to programming dogs!


--
Regards =dn
___
Edu-sig mailing list -- edu-sig@python.org
To unsubscribe send an email to edu-sig-le...@python.org
https://mail.python.org/mailman3/lists/edu-sig.python.org/
Member address: arch...@mail-archive.com


[Edu-sig] Re: Grokking Python

2024-03-03 Thread kirby urner
On Sat, Mar 2, 2024 at 3:37 PM Wes Turner  wrote:

> They're dunder methods; double-underscore
>
>
Certainly they are and my intro definitely includes this information.

Check out the following Dog class, endowed with two of Python’s “magic
methods” also known as: “dunder methods” (with “dunder” being short for
“double underline”) or “special methods”.


Then my link to them goes here:

https://docs.python.org/3/reference/datamodel.html#specialnames

Kirby
___
Edu-sig mailing list -- edu-sig@python.org
To unsubscribe send an email to edu-sig-le...@python.org
https://mail.python.org/mailman3/lists/edu-sig.python.org/
Member address: arch...@mail-archive.com


[Edu-sig] Re: Grokking Python

2024-03-02 Thread Wes Turner
They're dunder methods; double-underscore

/? site:docs.python.org "dunder" methods
https://www.google.com/search?q=site%3Adocs.python.org+%22dunder%22+methods

On Wed, Feb 14, 2024, 10:50 AM kirby urner  wrote:

>
> Long termers here will likely remember my fave Pythonic Pedagogy: to
> introduce special names as __ribs__.
>
> Because pythons have lots of __ribs__.
>
> I've not abandoned this idea, just haven't been redundantly reposting
> about it here for some time.
>
> But now...
>
> Why not share a couple "friend links" (nothing counts against a quota, no
> logging in I hope)?:
>
>
> https://kirbyurner.medium.com/grokking-python-9f96140c1e07?sk=d1ec6762e753d5c79106faf1669fcb04
>
>
> https://kirbyurner.medium.com/pythons-rib-cage-e4ff16cf3a74?sk=3e59d2356de6a13b42c9cf61d4d6a308
>
> A two parter on Medium. I'm getting some claps. I can take criticisms too.
>
> Kirby
>
> ___
> Edu-sig mailing list -- edu-sig@python.org
> To unsubscribe send an email to edu-sig-le...@python.org
> https://mail.python.org/mailman3/lists/edu-sig.python.org/
> Member address: wes.tur...@gmail.com
>
___
Edu-sig mailing list -- edu-sig@python.org
To unsubscribe send an email to edu-sig-le...@python.org
https://mail.python.org/mailman3/lists/edu-sig.python.org/
Member address: arch...@mail-archive.com