[Chris] > ... > So I don't see much value in a "->" operator, except for the > mere fact that it's different (and thus won't conflict in > except/with); and the bulk of name bindings in Python put > the name first.
It does give a natural solution to one of the problematic examples, because as a very-low-precedence operator it would suck up "everything to the left" instead of "everything to the right" as "the expression part":: if f(x) -> a is not None: can't be misunderstood, but: if a := f(x) is not None: is routinely misunderstood. On the other hand, if assignment expressions are expanded to support all the forms of unpacking syntax (as Guido appears to favor), then other cases arise: if f() -> a, b > (3, 6): Is that: if ((f() -> a), b) > (3, 6): or if (f() -> (a, b)) > (3, 6): ? Which is an argument in favor of ":=" to me: an assignment statement can be pretty complex, and if an assignment operator can become just as complex then it's best if it looks and works (as much as possible} exactly like an assignment statement. If someone writes if a, b := f() > (3, 6): it's easy to explain why that's broken by referring to the assignment statement a, b = f() > (3, 6) "You're trying to unpack a Boolean into a 2-tuple - add parens to express what you really want." _______________________________________________ Python-ideas mailing list Python-ideas@python.org https://mail.python.org/mailman/listinfo/python-ideas Code of Conduct: http://python.org/psf/codeofconduct/