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