[Python-Dev] (try-except) conditional expression similar to (if-else) conditional (PEP 308) (original) (raw)
Alexander Kozlovsky alexander.kozlovsky at gmail.com
Sat Aug 15 00:41:30 CEST 2009
- Previous message: [Python-Dev] (try-except) conditional expression similar to (if-else) conditional (PEP 308)
- Next message: [Python-Dev] (try-except) conditional expression similar to (if-else) conditional (PEP 308)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Jeff McAninch wrote:
I very often want something like a try-except conditional expression similar to the if-else conditional.
I think it may be done currently with the help of next function:
def guard(func, *args):
try:
return func()
except Exception, e:
for exc_type, exc_func in args:
if isinstance(e, exc_type):
return exc_func()
raise
Example usage:
a, b, c = 10, 20, 0
result = a + b/c # raise ZeroDivisionError
result = a + guard(lambda: b/c, (TypeError, lambda: 10),
(ZeroDivisionError, lambda: b/2))
May be not very concise, but it works...
-- Best regards, Alexander mailto:alexander.kozlovsky at gmail.com
- Previous message: [Python-Dev] (try-except) conditional expression similar to (if-else) conditional (PEP 308)
- Next message: [Python-Dev] (try-except) conditional expression similar to (if-else) conditional (PEP 308)
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]