<div dir="ltr"><div class="gmail_quote"><div dir="ltr">[Guido]</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr"><div>...</div><div>As to why you might want to use := in a function call, I could imagine writing</div><div><br></div><div>    if validate(name := re.search(pattern, line).group(1)):</div><div>        return name</div></div></blockquote><div><br>When I was staring at my code, I never mentioned the very first plausible use I bumped into (in code I was actively working on at the time):<br><br>while not probable_prime(p := randrange(lo, hi)):</div><div>     pass</div><div># and now `p` is likely a random prime in range<br><br></div><div>I never mentioned it because I expected it would annoy people on 3(!) counts:<br><br>- assigning in a function call</div><div>- reducing the loop body to `pass`</div><div>- using the binding long after the loop ended<br><br>Indeed, for those reasons it wasn't "an obvious" win to me - or an obvious loss.  So I just moved on.<br><br>However, after staring at hundreds of other cases, it does strike me as "a small win" today - my brain cells have rewired to recognize more ":=" patterns at a glance.<br><br>Whether that's a good thing or not I don't know, but it is a real thing ;-)<br><br></div></div></div>