Nick Coghlan wrote: > It would also result in two different ways to handle traditional > assignments: > > x = expr > x := expr > > Perhaps ":=" could be explicitly restricted to only single names on > the LHS, without any of the clever unpacking features of full > assignment statements? Unlike full assignment statements, assignment > expressions also wouldn't have anywhere to put a type annotation.
Why would "=" have to be kept for anything else but backwards compatibility and saving keystrokes? The expression var: annotation := value could assign a value to a name and it would have the corresponding value. I guess that it's problematic for the language grammar to allow things like for i in (var: annotation := value): print(i) In that case such constructions could be declared illegal. > P.S. Pascal was one of the first languages I used to write a > non-trivial application (a game of Battleships), so I'm predisposed > towards liking ":=" as an assignment operator :) Having an assignment operator that is optically distinct from '=' is IMO a strong point of Pascal. For Python, an even better assignment operator would be IMO "<-", but this is not possible without breaking backwards compatibility, and also it's a bit difficult to type on an English keyboard. _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/