[Python-Dev] assignment expressions: an alternative proposal
Chris Angelico
rosuav at gmail.com
Tue Apr 24 11:10:52 EDT 2018
More information about the Python-Dev mailing list
Tue Apr 24 11:10:52 EDT 2018
- Previous message (by thread): [Python-Dev] assignment expressions: an alternative proposal
- Next message (by thread): [Python-Dev] assignment expressions: an alternative proposal
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On Wed, Apr 25, 2018 at 12:58 AM, Yury Selivanov <yselivanov.ml at gmail.com> wrote: > On Tue, Apr 24, 2018 at 10:49 AM, Paul Moore <p.f.moore at gmail.com> wrote: > [..] >>>> 3. Most importantly: it is *not* allowed to mask names in the current >>>> local scope. >>> >>> While I agree this would be unambiguous to a computer, I think for >>> most humans it would be experienced as a confusing set of arcane and >>> arbitrary rules about what "=" means in Python. >> >> Also, there's the ambiguity and potential for misreading in the >> opposite direction (accidentally *reading* = as == even though it >> isn't): >> >> if (diff = x - x_base) and (g = gcd(diff, n)) > 1: >> return g > > Since 'diff' and 'g' must be new names according to rule (3), those > who read the code will notice that both were not previously bound. > Therefore both are new variables so it can't be a comparison. That would not be true if this code were in a loop. Or do you have a different definition of "not previously bound" that is actually a syntactic feature? For instance: if (x = 1): x = 2 Legal? Not legal? ChrisA
- Previous message (by thread): [Python-Dev] assignment expressions: an alternative proposal
- Next message (by thread): [Python-Dev] assignment expressions: an alternative proposal
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-Dev mailing list