On Sun, Aug 16, 2020 at 12:07:47PM -0700, Guido van Rossum wrote: [...] > So I probably would be okay with allowing `obj[]` syntactically, as long as > the dict type could be made to reject it.
I don't absolutely hate the idea, but I do feel that it's semantically rather dubious. `obj` with no subscript is just `obj`. It's not like an empty list, or string, so I'm still going to argue that there should be *something* in the subscript. Writing `obj[]` is, in my opinion, more likely to be an error than an intentional "subscript the default index". But if we did allow empty subscripts syntactically, surely they would only be valid if the `__getitem__` method defines a default? def __getitem__(self, index="right here"): Otherwise we should get a TypeError. The same would apply to subscript assignment: obj[] = value would only be allowed if the object defined setitem with a default for the index. Otherwise it would be a TypeError. In any case, we could punt on this and leave the empty subscript question for another day: Now is better than never. Although never is often better than *right* now. I would hate for the keyword question to be derailed because we can't reach a consensus on what empty subscripts mean. -- Steven _______________________________________________ Python-ideas mailing list -- python-ideas@python.org To unsubscribe send an email to python-ideas-le...@python.org https://mail.python.org/mailman3/lists/python-ideas.python.org/ Message archived at https://mail.python.org/archives/list/python-ideas@python.org/message/GYLKR5HBAOZVPFO5URXNUESLBEHU3E23/ Code of Conduct: http://python.org/psf/codeofconduct/