Serhiy Storchaka <storchaka+cpyt...@gmail.com> added the comment:
No. First, it is impossible. nb_bool and PyObject_IsTrue() can return only three value: 1 for true, 0 for false, and -1 for error. It is not possible to represent NotImplemented without breaking all extensions. Currently if not a: b() else: c() is equivalent to if a: c() else: b() If a is NotImplemented, what branch be executed in every case? Second, it would not help. Because real-world examples are not always so trivial as "return not self.__lt__(other)". It may be a part of more complex expression, e.g.: return super().__eq__(other) and self.attr == other.attr So it may help in some examples, but make bugs in other examples even more mystical. ---------- _______________________________________ Python tracker <rep...@bugs.python.org> <https://bugs.python.org/issue35712> _______________________________________ _______________________________________________ Python-bugs-list mailing list Unsubscribe: https://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com