[Python-ideas] (try-except) conditional expression similar to (if-else) conditional (PEP 308)

Nick Coghlan ncoghlan at gmail.com
Thu Aug 6 14:32:01 CEST 2009


(moving to python-ideas)

Dj Gilcrease wrote:
> On Thu, Aug 6, 2009 at 4:47 AM, Nick Coghlan<ncoghlan at gmail.com> wrote:
>> Option 2:
>>  x = float(string) except ValueError: float('nan')
>>  op(float(string) except ValueError: float('nan'))
>>
>> This has the virtue of closely matching the statement syntax, but
>> embedding colons inside expressions is somewhat ugly. Yes, lambda
>> already does it, but lambda can hardly be put forward as a paragon of
>> beauty.
> 
> +1 on this option as it resembles the standard try/except block enough
> it would be a quick edit to convert it to one if later you realize you
> need to catch more exceptions*
> 
> * I recommend NOT allowing multiple exceptions in this form eg
> x = float(string)/var except ValueError, ZeroDivisionError, ...: float('nan')
> 
> as it will start to reduce readability quickly

All 3 components would just be ordinary expressions. The exception
definition would be allowed to resolve to a single exception or a tuple
of exceptions, just as it is in a normal try/except statement.

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia
---------------------------------------------------------------



More information about the Python-ideas mailing list