Hi Chris, Thank you for working on this PEP! Inline assignments is a long requested feature and this seems to be the first serious attempt at adding it.
That said I'm very -1 on the idea. 1. I switch between Python / JavaScript / C frequently (although I code in Python 70% of my time.) C and JS have inline assignments but I don't find myself using them often. JavaScript has inline assignments and they are useful to get the match object after applying a regex. You use the same example in your PEP. But in my experience, this is the only common pattern in JavaScript. I don't see people using inline assignments for anything else, at least it's not a common pattern. C is low-level and has no exceptions. It uses function return values to signal if there was an error or not. It's a popular pattern to call a function from an 'if' statement like this: "if ((int ret = func()))" to save a line of code. If we ignore this particular pattern, we see that inline assignment isn't used that often. In your PEP you use comprehensions and regex match object to show how inline assignment can simplify the code. In my experience, comprehensions that are a little more complex than "(f(x) for x in something)" are always better being rewritten to an expanded form. I don't find "stuff = [[y := f(x), x/y] for x in range(5)]" very readable, and yes, I think that the simple expanded version of this comprehension is better. Using inline assignments in "while" statements is neat, but how often do we use "while" statements? 2. We all try to follow the Python zen when we are designing new language features. With the exception of string formatting Python follows the "There should be one-- and preferably only one -- obvious way to do it." line. Your PEP, in my personal opinion, goes agains this one, and also a few other lines. I simply don't see a very compelling use case to have two forms of assignment in Python. It does complicate the grammar by adding a new operator, it invites people to write more complex code, and it has only a couple good use cases. Yury _______________________________________________ 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