Favorite non-python language trick?
Tim Peters
tim.peters at gmail.com
Mon Jun 27 11:21:23 EDT 2005
[Terry Hancock]
> Probably the most pointless Python wart, I would think. The =/==
> distinction makes sense in C, but since Python doesn't allow assignments
> in expressions, I don't think there is any situation in which the distinction
> is needed. Python could easily figure out whether you meant assignment
> or equality from the context, just like the programmer does.
That's what Python originally did, before release 0.9.6 (search
Misc/HISTORY for eqfix.py). Even this is ambigous then:
a = b
Especially at an interactive prompt, it's wholly ambiguous then
whether you want to change a's binding, or want to know whether a and
b compare equal.
Just yesterday, I wrote this in a script:
lastinline = ci == ncs - 1
This:
lastinline = ci = ncs - 1
means something very different (or means something identical,
depending on exactly how it is Python "could easily figure out" what I
intended <wink>).
Of course strange rules could have resolved this, like, say, "=" means
assignment, unless that would give a syntax error, and then "=" means
equality. Then
lastinline = ci = ncs - 1
would have been chained assignment, and something like
lastinline = (ci = ncs - 1)
would have been needed to get the intent of the current
lastinline = ci == ncs - 1
More information about the Python-list
mailing list