missing 'xor' Boolean operator

Tim Golden mail at timgolden.me.uk
Wed Jul 15 11:32:55 CEST 2009


Steven D'Aprano wrote:
> On Tue, 14 Jul 2009 11:25:08 -0700, Dr. Phillip M. Feldman wrote:
> 
>> Current Boolean operators are 'and', 'or', and 'not'.  It would be nice
>> to have an 'xor' operator as well.
> 
> I've often wished there was too, for the sake of completeness and 
> aesthetics, I'd love to be able to write:
> 
> a xor b
> 
> instead of defining a function xor(a, b).
> 
> Unfortunately, outside of boolean algebra and simulating electrical 
> circuits, I can't think of any use-cases for an xor operator. Do you have 
> any?

I was pondering on this yesterday, and the only case I've
come across in my code -- and it's reasonably common --
is checking that one and only one of two params has been
passed. I have code which wants, say, an id or a name
but doesn't want both. It's hardly difficult to write the
check even now, but an built-in xor would make it fractionally
cleaner.

TJG




More information about the Python-list mailing list