sa2c / python-oop-novice

An introduction to object-oriented programming for Python users in research
https://sa2c.github.io/python-oop-novice/
Other
1 stars 5 forks source link

Consider renaming "Magic methods" to "Special methods" and bring early the "dunder" name & etimology. #5

Closed villares closed 4 years ago

villares commented 4 years ago

Hi, this OOP novice lesson is really great.

I'd ask the maintainers to consider renaming the topic title "Magic Methods" (https://sa2c.github.io/python-oop-novice/05-dunder/index.html) to "Special Methods", as it is the term favored by many authors in the Python community nowadays (including Luciano Ramalho, a Carpentries contributor, in his Fluent Python book). We could even maintain a mention to the term 'magic methods' if you like.

Also, its great that at the end there is a mention to the 'dunder' nomenclature, I feel it should be mentioned earlier, in connection to how we pronounce things like __init__ ("dunder init") and it's origin from "double underscore" (it can be quite confusing to the non-initiated).

edbennett commented 4 years ago

Hi @villares, many thanks for the feedback. I'm glad to hear you're a fan of the lesson!

As much as I'm a fan of the "magic" term, definitely reducing confusion by using naming consistent with the wider community is better pedagogy, so I've switched. I've left in a brief mention of "magic" as an alternative, because there are still references on docs.python.org using that terminology.

My original thinking with ignoring the dunder nomenclature until episode 5 was to avoid introducing too many concepts at once—first introduce one special method that is the most common, and then once that is solid then extend it to a family of special methods. However, I can see your point, especially if instructors have a hard time not saying "dunder" (rather than "underscore underscore init underscore underscore"). As a compromise I've added an explanation in episode 2 as a callout, to try and avoid interrupting the flow with an extra concept; I think this matches what other Carpentries lessons do when they want to point out "hey, lots of people say this, your instructor might too, this is why".

Thanks again!