Jim Jewett wrote: > It currently says that __not__ can return NotImplemented, which falls > back to the current semantics.
I'm not sure why I put that there. As you observe, it's not necessary, since you can always get the default semantics simply by not defining the method. An experiment suggests that the existing unary operator methods don't special-case NotImplemented, so I'll remove that part. > It does not yet say what will happen for objects that return something > else outside of {True, False}, There's nothing to say -- whatever you return is the result. That's the whole point of making it overloadable. > Is that OK, because "not not X" should now be spelled "bool(x)", and > you haven't allowed the overriding of __bool__? Yes, I would say that 'not not x' should indeed be spelled bool(x), if that's what you intend it to mean. Whether __bool__ should be overloadable is outside the scope of this PEP. But if it is overloadable, I would recommend that it not be allowed to return anything other than a boolean. -- Greg _______________________________________________ Python-3000 mailing list Python-3000@python.org http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com