Antoine Pitrou added the comment: > In case this logic is flawed, we know that when remove_subclass() is > called, exactly one child is removed. Whether it is us, or some > previous class, is irrelevant.
remove_subclass() is called when __bases__ is assigned to, so it is not irrelevant: >>> class A: pass ... >>> class B(A): pass ... >>> class C: pass ... >>> A.__subclasses__() [<class '__main__.B'>] >>> B.__bases__ = C, >>> A.__subclasses__() [] >>> C.__subclasses__() [<class '__main__.B'>] ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <http://bugs.python.org/issue17936> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com