Why can't I xor strings?

Alex Martelli aleaxit at yahoo.com
Mon Oct 11 09:15:19 EDT 2004


Grant Edwards <grante at visi.com> wrote:
   ...
> Probably so, but that doesn't support the arguement that
> there's something wrong with a logical xor argument coercing
> it's operands to boolean values unless one also argues that
> the logical "and", "or" and "not" operators should also not
> coerce their operands to booleans.

One of the greatest sources of usefulness for 'and' and 'or' is exactly
that these operators _don't_ coerce their operands -- they always return
one of the objects that are given as their operands, never any
'coercion' of it.  This lets one code, e.g., 

    k, v = (onedict or another).popitem()

instead of

    if onedict:
        k, v = onedict.popitem()
    else:
        k, v = another.popitem()

Operator 'xor' couldn't possibly ensure this useful behavior, alas.


Alex



More information about the Python-list mailing list