[Python-ideas] Suggestions: dict.flow_update and dict.__add__
Jonathan Fine
jfine2358 at gmail.com
Tue Mar 5 12:09:19 EST 2019
I thank Guido and Christopher for their thoughtful comments. You
certainly found some weak points. I chose the name 'flow' to match:
https://en.wikipedia.org/wiki/Fluent_interface#Python
Instead of my previous
arg = defaults.copy().flow_update(options)
one could instead from somewhere import flow, and then write
arg = flow(defaults.copy()).update(options)
This avoids a profusion of flow_ methods, and also the need to
subclass dict. Once could of course use a different name. Perhaps
'follow' would be better. And it would work 'out the box' in other
situations.
Christopher might prefer the flow(obj).update approach, as it respects
the convention "mutating methods do not return self." (Thank you for
your clear statement, Christopher.)
(Aside: For the non-experts, a word if I may about the implementation.
The key point is that in Python the programmer 'owns the dot' and so
the desired semantics can be implemented. We use a custom
__getattribute__ .)
Finally, please forgive my fictional use case. I think studying
real-world use cases for dict + dict would be very helpful to the
discussion. I don't recall seeing any, but I haven't looked hard.
Instructive use cases should, of course, be placed in the PEP.
--
Jonathan
More information about the Python-ideas
mailing list