Ethan Furman writes:
 > On 02/21/2014 07:46 PM, Chris Angelico wrote:
 > >
 > > but not this:
 > >
 > > value = expr except Exception: default except Exception: default
 > 
 > This should be the way it works.  Nothing is gained in readability
 > by turning a try with multiple except statements into an
 > expression.

Examples have been given several times.  In general, if 'expr' is a
function call, it may well have a couple of different ways to fail
which imply different default values.

    interpolable = func(key) except TypeError: "not a string: %s" % key \
                             except KeyError: "no such key: %s" % key
    print("Some message that refers to '%s' % interpolable")

versus

    try:
        interpolable = func(key)
    except TypeError:
        interpolable = "not a string: %s" % key
    except KeyError:
        interpolable = "no such key: %s" % key
    print("Some message that refers to '%s' % interpolable")

I think the latter begs to be written as the former.

_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to