On Tue, Apr 24, 2018 at 03:54:30PM -0700, Guido van Rossum wrote: > We should really take this back to python-ideas at this point.
Please no :-( Variants of "let" etc were discussed earlier and didn't seem to get much interest. Although I don't think "var" specifically was suggested before, "let" certainly has been: https://mail.python.org/pipermail/python-ideas/2018-February/049031.html In the same thread, I also independently suggested "let": https://mail.python.org/pipermail/python-ideas/2018-February/048981.html This suggestion didn't seem to get much in the way of support, so much so that in the hundreds of emails for PEP 572 the idea seems to have been completely forgotten until now. Perhaps it ought to be added to the PEP in the rejected syntax section. I don't think there's anything to gain by rehashing this again: whether we choose "let", "var" or "bind", there's no real difference. It's still a new keyword, and it still looks like little else in Python today: while (var spam = expression) and spam in values: ... It's not really awful, but nor is it clearly better than := and the fact that it will require a keyword is a major point against it. I'm speaking for myself, of course, not Chris, but while consensus is of course desirable I think there comes a time where the PEP author is entitled to say "I've heard enough arguments, and I'm not convinced by them, this is my proposal and here it stays". If it were my PEP, at this point I would say that if anyone wants to champion an alternative syntax they can write their own PEP :-) I think this idea is going to be too divisive to expect a consensus to emerge, rather like the ternary if operator. I truly believe we've covered just about everything that needs covering, over many hundreds of emails in multiple threads, and unless somebody puts their hand up to write a competing PEP (or at least says something new beyond what we've already seen many times before) I think it is just about time for a BDFL decision between: 1. Reject the PEP. Not going to happen. 2. Leave the PEP pending. Maybe some time in the future. 3. Accept the PEP using the `name := expression` syntax. My preference would be for 3, even though := isn't my first choice for syntax, it's still a good choice. I think there are sufficient use-cases to justify this feature, including some long standing annoyances such as the dance we have to play with regexes, which only gets more annoying as you add more alternatives and cascading indentation. mo = re.match(pattern1, string) if mo: process(mo) else: mo = re.match(pattern2, string) if mo: handle(mo) else: mo = ... # you get the picture (I've changed my mind from earlier when I said this didn't count as a separate use-case from those already given. I think that cascading regexes is a big enough pain that it should be explicitly listed in the PEP as a motivation.) -- Steve _______________________________________________ Python-Dev mailing list Python-Dev@python.org https://mail.python.org/mailman/listinfo/python-dev Unsubscribe: https://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com