[Python-ideas] Inline assignments using "given" clauses
cs at cskk.id.au
Sun May 13 00:01:19 EDT 2018
On 11May2018 11:45, Tim Peters <tim.peters at gmail.com> wrote:
>>>> IMHO, all these toy examples don't translate well to the real world
>>>> because they tend to use very short variable names while in real world [good
>>>> written code] tends to select longer more descriptive variable names.
>>> I don't believe that's always true. It depends on the context.
>>> Sometimes, using long variable names can make code *harder*
>>> to read.
>>> I don't think there's anything unrealistic about this
>>> if m given m = pattern.match(the_string):
>>> nugget = m.group(2)
>>> Most people's short-term memory is good enough to remember
>>> that "m" refers to the match object while they read the
>>> next couple of lines. IMO, using a longer name would serve
>>> no purpose and would just clutter things up.
>> I've been thinking about this problem, and I think for the If/elif/while
>> cases it's actually possible to allow the "binding is the same as the
>> condition" case to be simplified to:
>> if command = pattern.match(the_string):
>> elif command = other_pattern.match(the_string):
>> while data = read_data():
>Unless there's some weird font problem on my machine, that looks like
>a single "equals sign". In which case we'd be reproducing C's
>miserable confusion about whether:
> if (i = 1)
>was a too-hastily-typed spelling of the intended:
> if (i == 1)
>or whether they were thinking "equals" and typed "=" by mistake.
Sorry for the huge quote, but I'm also -1 on this. It reads beautifully, but
we're straight into the = vs == area and that outweighs things IMO.
>If so, that would get an instant -1 from any number of core devs, who
>have vivid painful memories of being burned by that in C. That's not
>just speculation - it came up a number of times in the PEP 572
Disclaimer: I'm not a core dev!
Cameron Simpson <cs at cskk.id.au>
More information about the Python-ideas