| > That's not at all what Python does. I know what's going on and my comment was sufficiently accurate to get the point across in 1 sentence. I wasn't exactly intending to get into a lecture on MRO here. > C++ solves the problem of not calling the "correct" superclass by default by foisting the responsibility of choosing the correct subset onto the derived class author Which is much better than leaving a ticking time bomb. > doesn't solve the "I called my superclass' method too many times" Er, yes it does. Every class instance in a hierarchy is initialized exactly once. Trying to call it twice will produce an error (e.g. "class has already been initialized"). > Python resolves all three of these It does not. It's perfectly fine letting you call a class's __init__ multiple times. Unlike with C++. > Aside: "idiosyncratic" is an interesting word to use given that the C3 MRO was originally intended for Dylan. It is a fine word. "Idiosyncrasy" does not imply there exists only 1 person in the whole world engaging in the given practice: "Her habit of using “like” in every sentence was just one of her idiosyncrasies." https://www.merriam-webster.com/dictionary/idiosyncrasy I'm tired of the pointless arguing so this will be my last comment. |