I don't really care what terms like "Full MI" or "True MI" are intended to
mean. Python and MANY other programming languages that allow classes to
have multiple parents, use a method resolution order (MRO) to decide which
same-named method from a complex inheritance tree to use in a given call.

If languages use an MRO, C3 is probably the best choice. But not the only
one. But sure, C++ and Eiffel are free to refuse "ambiguity" of names
occurring multiple times in an inheritance tree. Other languages are free
to use single inheritance, or traits, or mixins.

I wrote an article a lot of years ago, around the time C3 was new to
Python, intending to show what a banal thing OOP is in which I added
inheritance and an MRO to R (all within R itself). It was something like
20-30 lines of code in total. My MRO was something dumb like depth first or
breadth first, but it WAS an MRO. R doesn't have inheritance, it's not OOP,
which was my main reason to choose it for the exercise.

One thing I do find a bĂȘte noire is the silly claim, that Chris repeats,
that inheritance expresses "Is-A" relationships. It was torture in the
1990s hearing about vehicles and trucks and sedans as if that had something
to do with programming. I never "got" OOP for at least 5 years later than I
should have because of those horrible Linnaean metaphors.

The reality is more clear in the actual primary definition of the word
itself: "the practice of receiving private property, titles, debts,
entitlements, privileges, rights, and obligations". In programming, a class
can receive methods and attributes from some other classes. That's all.
It's just a convenience of code organization, nothing ontological.
_______________________________________________
Python-ideas mailing list -- python-ideas@python.org
To unsubscribe send an email to python-ideas-le...@python.org
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at 
https://mail.python.org/archives/list/python-ideas@python.org/message/CSSBRRM42NK7JMLMOEBL7JIY5ITPQC2W/
Code of Conduct: http://python.org/psf/codeofconduct/

Reply via email to