[Python-Dev] "and" and "or" operators in Py3.0

Jonathan LaCour jonathan-lists at cleverdevil.org
Tue Sep 20 02:13:05 CEST 2005


> P.S.  Simplifying "and" and "or" may create a need to introduce a
> conditional operator but that is a discussion for another day.

While I don't disagree with some of your main points, I do think that  
your proposal would eliminate a natural and easy to understand use of  
the current behavior of "or" that I tend to use quite a bit.  Your  
proposal would break a lot of code, and I can't think of a better  
"conditional operator" than the one thats already there.

I often find myself using 'or' to conditionally select a meaningful  
value in the absence of a real value:

     person = Person.fetch(id=5)
     name = person.name or 'John Doe'
     birth_date = person.birth_date or '00-00-0000'
     ssn = person.social_security or 'not provided'
     logger.log_msg('%s born on %s with SSN %s' % (name, birth_date,  
ssn))

To me, its just as natural as:

     { 'key' : value }.get('not_there', 'default')

but more general purpose.  I like the current behavior, and I think  
it makes a whole lot of sense.

Jonathan LaCour
http://cleverdevil.org


More information about the Python-Dev mailing list