[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