Another approach could be too simply pass the labelled indices in a dict as a third/fourth positional argument.
So for indexing b = arr[1, 2, a=3, b=4] Instead of __getitem__(self, (1, 2), a=3, b=4) Just do __getitem__(self, (1, 2), {'a': 3, 'b': 4}) On Mon, Aug 3, 2020, 16:46 Christopher Barker <python...@gmail.com> wrote: > > Yes, that would be correct. However, the function could instead be defined >> as: >> >> def __getitem__(self, index, /, **kwargs): >> ... >> >> and then there'd be no conflict (as "self" and "index" must be passed >> positionally). In effect, the naive spelling (which permits self and >> index to be passed as keywords) would be a subtle bug that could >> easily be corrected. >> > > sure, but it would be a bug in a LOT of existing code! > > I wonder, if this were to be introduced, if the interpreter could have a > special case that would call __getitem__ in a special way to avoid this bug > in old code. > > -CHB > > > -- > Christopher Barker, PhD > > Python Language Consulting > - Teaching > - Scientific Software Development > - Desktop GUI and Web Development > - wxPython, numpy, scipy, Cython > _______________________________________________ > 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/GL3ZVHSGOUCSYBOJCCTOHWAKVZ5JTVTL/ > Code of Conduct: http://python.org/psf/codeofconduct/ >
_______________________________________________ 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/D66W3I5CPO2JOYJBXEKO2TDJX7WIIKY7/ Code of Conduct: http://python.org/psf/codeofconduct/