[Python-ideas] Inline assignments using "given" clauses
rosuav at gmail.com
Sat May 12 20:41:21 EDT 2018
On Sun, May 13, 2018 at 10:27 AM, Juancarlo Añez <apalala at gmail.com> wrote:
>> if (diff := x - x_base) and (g := gcd(diff, n)) > 1:
>> return g
> I don't see the advantage in that succinctness:
> g = special_gcd(x - x_base, n)
> if g:
> return g
> The code bases I work on constantly move towards having the next guy grok
> what's going on just by reading the code.
> It could also be:
> if special_gcd(x - x_base, n) as g:
> return g
Now I have to go read elsewhere to figure out what "special_gcd" does.
With Tim's original code, I could see the effect right there. It might
not seem significant with a single function, but if you had this
situation come up a dozen times, now you have a dozen functions, each
one used only once. You have to go a LONG way out of line to find the
meaning of this name.
Remember: Giving a function a useful name means figuring out a name
that means you do not need to read the function's body to understand
what it does. It's easy to say "just make it a function", but that's
utterly useless if the next reader has to grok the function's
implementation to understand its usage.
More information about the Python-ideas