No, many things need not be as general as possible once you consider how much work it may take to develop code and how many bugs and oddities might be introduced and even how much it may slow the interpreter.
I could make an argument that everywhere you can put in a character string should also allow a regular expression but why? It makes no sense to allow you to supply a filename to create using a regular expression as you are not matching anything. Worse, perfectly valid string that may contain a dollar sign or period or many other characters used in regular expression may really be messed up if evaluated as a regular expression. So is it any wonder NOBODY suggests the above be done? As Chris has said, something was added to Python that is a partial implementation. There are fairly reasonable ways to do additional things and until recently, those were the proper and only way. But the recent change does not preclude a later upgrade if anyone is not only convinced it is worth doing but of higher priority than the scarce resources needed to do lots of other worthy and requested things including fixing bugs. I imagine you can create some fairly complex examples you can suggest should be handled for generality including some very indirect references created dynamically. The code to recognize any abstract use of symbols may not only slow down every operation of even the simplest type but generate all kinds of error messages nobody will understand, let alone translate into other languages properly! Right now, it is simpler. An error message can say that only certain simple usages are allowed. Now if anyone wants to donate a few hundred thousand dollars if used to make the change, or offer to do it free, who knows? Of course, this means anyone using the feature may need to check your version of Python to see if the feature exists before ... -----Original Message----- From: Python-list <python-list-bounces+avigross=verizon....@python.org> On Behalf Of Alan Bawden Sent: Sunday, October 24, 2021 3:53 AM To: python-list@python.org Subject: Re: New assignmens ... It seemed weird to me that only an identifier was allowed to be the target of an assignment expression. Then it occurred to me that function definitions are another place where only identifiers are allowed, but where I could imagine an attributeref or a subscription being used. E.g. def table[i](x): ... would mean the same thing as: def _temp_(x): ... table[i] = _temp_ I don't immediately see that this would screw up the grammar in any way, so why not allow it? A `def` statement is just another form of assignment, so just as for `:=` expressions, we should allow the target to be as general as possible! I'm guessing that about 70% of you will think that this is a horrible idea, 10% of you will find it compelling, and the remaining 20% will find themselves conflicted. You can count me in that last category... -- Alan Bawden -- https://mail.python.org/mailman/listinfo/python-list -- https://mail.python.org/mailman/listinfo/python-list