Benjamin Peterson added the comment: I believe the correct behavior is actually
Traceback (most recent call last): File "<string>", line 1, in <module> File "bar.py", line 7, in <module> C() TypeError: foo.A.__new__(C) is not safe, use foo.B.__new__() This is because A comes before B in the mro, and, indeed, constructing C with A.__new__ is unsafe. In fact, reordering A and B in the definition of C fixes everything. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue25731> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com