[Python-Dev] Wither PEP 335 (Overloadable Boolean Operators)? (original) (raw)

Jim Jewett jimjjewett at gmail.com
Fri May 25 21:33:28 CEST 2007


Greg,

If you do update this PEP, please update the not portion as well, at least regarding possible return values.

It currently says that not can return NotImplemented, which falls back to the current semantics. (Why? to override an explicit not? Then why not just put the current semantics on object, and override by calling that directly?)

It does not yet say what will happen for objects that return something else outside of {True, False}, such as

class AntiBool(object):
    def __not__(self):  return self

Is that OK, because "not not X" should now be spelled "bool(x)", and you haven't allowed the overriding of bool? (And, if so, how does that work Py3K?)

-jJ



More information about the Python-Dev mailing list