[Python-Dev] PEP 572: Assignment Expressions

Matthew Woodcraft matthew at woodcraft.me.uk
Sat Apr 21 13:47:13 EDT 2018


On 2018-04-17 08:46, Chris Angelico wrote:
> Having survived four rounds in the boxing ring at python-ideas, PEP
> 572 is now ready to enter the arena of python-dev.

I would like to suggest one more motivating example for "Capturing
condition values": multiple regex matches with 'elif'.

if match := re.search(pat1, text):
    print("Found one:", match.group(0))
elif match := re.search(pat2, text):
    print("Found two:", match.group(0))
elif match := re.search(pat3, text):
    print("Found three:", match.group(0))

Without assignment expressions, you have an annoying choice between a
cascade of 'else's with an ever-increasing indent and evaluating all the
matches up front (so doing unnecessary work).

-M-



More information about the Python-Dev mailing list