[Python-ideas] Null coalescing operators
Steven D'Aprano
steve at pearwood.info
Tue Sep 22 04:15:46 CEST 2015
On Mon, Sep 21, 2015 at 04:23:03PM -0400, Terry Reedy wrote:
> try:
> process(re.match(needle, haystack).group())
> except AttributeError: # no match
> no_needle()
>
> is equivalent unless process can also raise AttributeError.
It is difficult to guarantee what exceptions a function will, or won't,
raise. Even if process() is documented as "only raising X", I wouldn't
be confident that the above might not disguise a bug in process as "no
needle".
This is why the standard idiom for using re.match is to capture the
result first, then test for truthiness (a MatchObject), or None-ness,
before processing it.
--
Steve
More information about the Python-ideas
mailing list