Steve and I have different opinions, as to what the new behaviour of: >>> d = dict() >>> d[x=1, y=2] = 3 should be. He prefers that the assignment fail with TypeError: dict subscripting takes no keyword arguments I prefer that the assignment succeed (and hence a new key-value pair is added to 'd'). I think this is a important question to get right. And a pressing question. If we choose unwisely now, it might be difficult to change our mind later (particularly after the feature has been released). To support his opinion, Steven wrote:
Just because something is syntactically allowed doesn't mean it has to be given a meaning in all circumstances.
I completely agree with this statement. And I hope that Steven agrees with the statement: Just because something can be semantically forbidden doesn't mean that it should to be. We have an opportunity to improve Python for the benefit of its users. I think it would be helpful to have some concise statements on the benefits of >>> d = dict() >>> d[x=1, y=2] = 3 TypeError: dict subscripting takes no keyword arguments And similarly, concise statements on the benefits of >>> d = dict() >>> d[x=1, y=2] = 3 >>> d[x=1, y=2] 3 By the way, I'd prefer that a problem seen in the one choice is instead expressed as a benefit of the other. To conclude, I'm pleased that this difference of opinion has emerged sooner rather than later. I hope we have a discussion that leads to an improved shared understanding. I hope this message helps. -- Jonathan