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

Reply via email to