Nick Coghlan wrote:
> I also think that if "=" and ":=" both target the same kind of scope,
> there isn't enough new expressiveness introduced by the latter to
> justify the syntactic complexity of adding it.
OK, but then how about introducing assignment expressions with the "="
operator but *requiring* extra parens (similar to how modern C compilers
warn about assignment expressions without parens), e.g.
while (obj = get()):
process(obj)
The semantics of assignment expressions could be exactly what I proposed
for ":=", i.e. completely consistent with assignment statements.
Assignment statements could be either left as they are or could be
treated as expressions. That second choice would have consequences for
interactive sessions:
>>> a = 3
3
----------------
The above would bring the benefits of assignment expressions in a
minimally invasive but safe way. Moreover, it would not feel like
Pascal! The only downside is that "=" stands out less than ":=" so that
the presence of side-effects would be somewhat less visible.
Christoph
_______________________________________________
Python-Dev mailing list
[email protected]
https://mail.python.org/mailman/listinfo/python-dev
Unsubscribe:
https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com