Neil, thank you for doing much better job explaining the problem. Generally, I'm cool with Python's standard library classes not calling super(), as many of them are not designed for subclassing. But those which are should do that. E.g. take a look at more recent asyncio's Protocol and Transport classes: they all properly call super().
One potential problem is that it will break existing code: class X(Thread, SomethingElse): def __init__(self): Thread.__init__(self) SomethingElse.__init__(self) SomethingElse.__init__ will be called twice. Is it a good reason for "old" classes to lag behind? I don't know. Perhaps some mechanism (invisible to a user) can be designed to avoid that. E.g. super() may leave a flag which should signal interpreter to "skip" all direct calls of a function and warn about it (DeprecationWarning?). Best Regards, Ilya Kulakov _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/