
We are discussing a proposal to extend Python's syntax to allow d[1, 2, a=3, b=4] We are also discussing the associated semantics. At present d[1, 2] d[(1, 2)] are semantically equivalent. There is a proposal, that d[1, 2, a=3, b=4] d[(1, 2), a=3, b=4] be semantically equivalent. I find this troubling, for example because fn(1, 2, a=3, b=4) fn((1, 2), a=3, b=4) are semantically different. Here's another example. If we are allowed to write d[*argv, a=3, b=4] then the proposal makes this equivalent to d[argv, a=3, b=4] when type(argv) is tuple. Consider now >>> def fn(*argv): print(argv) >>> argv = 'key' >>> fn(*argv) ('k', 'e', 'y') I think it would be a trap for the unwary, that the equivalence of d[argv, a=3, b=4] d[*argv, a=3, b=4] depends on the type of argv. The root of the proposal that d[1, 2, a=3, b=4] d[(1, 2), a=3, b=4] be semantically equivalent is this: At present d[1, 2] d[(1, 2)] are semantically equivalent. Why not instead , as part of the proposed semantics, make d[1, 2] d[(1, 2)] semantically different, but only for those classes that ask for it. (This would automatically preserve backwards compatibility.) I believe this is possible and straightforward in the future, and also in the present via the 'o' and K mechanism. I'm happy to implement this in kwkeys, when I have time. An aside: I also strongly believe that writing and studying examples that use the new syntax, via the 'o' and K mechanism, is essential to making good choices regarding the semantics, the writing and approval of the PEP, and the success of the extension to Python (should the PEP be accepted). I hope this helps us come to a shared understanding. -- Jonathan