>
> ONE way might be to have the new method call the existing dunders. But
> that's not my preference-- I would like to find another way. I do have
> another idea, and I presented it in a previous response. Here it is again:
>
> def __key_or_index_translator__(self, pos1, pos2, *, x) ->
> Tuple[Tuple[Any], Dict[str, Any]]:
> """I only allow subscripting like this:
>
> >>> obj[1, x=2]
> """
> return (pos1, pos2), dict(x=x)
>
> The returned two-tuple, `t`, in turn gets unpacked like for each of the
> existing item dunders:
>
> obj.__getitem__(*t[0], **t[1])
> obj.__setitem__(value, *t[0], **t[1])
> obj.__delitem__(*t[0], **t[1])
>
Cripes, I screwed up the __key_or_index_translator__ docstring. See
correction below, sorry.
-------------------
def __key_or_index_translator__(self, pos1, pos2, *, x) ->
Tuple[Tuple[Any], Dict[str, Any]]:
"""I only allow subscripting like this:
>>> obj[1, 2, x=2]
"""
return (pos1, pos2), dict(x=x)
---
Ricky.
"I've never met a Kentucky man who wasn't either thinking about going home
or actually going home." - Happy Chandler
_______________________________________________
Python-ideas mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-ideas.python.org/
Message archived at
https://mail.python.org/archives/list/[email protected]/message/NFRYYCDWALWZE5OP3EGAIRG2ECYDI65W/
Code of Conduct: http://python.org/psf/codeofconduct/