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

Dj Gilcrease digitalxero at gmail.com
Thu Aug 6 13:18:52 CEST 2009


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


More information about the Python-Dev mailing list