operator overloading + - / * = etc...
Fredrik Lundh
fredrik at pythonware.com
Tue Oct 10 06:32:08 EDT 2006
Roman Neuhauser wrote:
> People who complain often fail to see how
>
> x = foo()
> while x:
> process(x)
> x = foo()
>
> is safer than
>
> while x = foo():
> process(x)
that's spelled:
for x in foo():
process(x)
in Python, or, if foo() just refuses be turned into a well-behaved Python
citizen:
while 1:
x = foo()
if not x:
break
process(x)
(this is the standard "loop-and-a-half" pydiom, and every python pro-
grammer should be able to identify it as such in a fraction of a second).
or for the perhaps-overly-clever hackers,
for x in iter(lambda: foo() or None, None):
process(x)
it's not like the lack of assignment-as-expression is forcing anyone to
duplicate code in today's Python.
also, in my experience, most assignment-as-expression mistakes are done
in if-statements, not while-statements (if not else because if statements are
a lot more common in most code). the "but it cuts down on duplication"
argument doesn't really apply to if-statements.
</F>
More information about the Python-list
mailing list