On 2020-04-16 04:33, Rob Cliffe via Python-Dev wrote:
Here's another revolutionary thought: add a new operator and associated dunder
method (to object?)
whose meaning is *undefined*. Its default implementation would do *nothing*
useful (raise an error? return None?).
E.g. suppose the operator were `..`
Then in a specific class you could implement x..y to mean x['y']
and then you could write
obj..abc..def..ghi
Still fairly concise, but warns that what is happening is not normal attribute
lookup.
Interesting, I've thought the same thing. Double dot might be a good option.
In practice however I've not encountered key names in JSON that conflict with
the dictionary methods. A missing protocol could handle clashes when they
happen, as applied to keys. Keys that conflict are simply shadowed by the
method names unless you use [''] notation.
I know, that answer is not satisfying to the purist. Double dot is better in
that regard. Yet haven't found it to be a concrete problem.
Perhaps linters could find code using uncalled dict method names as a
mitigation. Suppose it boils down to a judgement call in the end.
-Mike
_______________________________________________
Python-Dev mailing list -- python-dev@python.org
To unsubscribe send an email to python-dev-le...@python.org
https://mail.python.org/mailman3/lists/python-dev.python.org/
Message archived at
https://mail.python.org/archives/list/python-dev@python.org/message/YPMKEB3ASW7KJAIP6F7K3F3X7FHIINRN/
Code of Conduct: http://python.org/psf/codeofconduct/