On Mon, Feb 24, 2014 at 09:01:07AM -0600, Ron Adam wrote:
You would probably see it used more often like this...
def names(defaults, pos_names, pos_args, kwds): return {}.=update(defaults) \ .=update(zip(pos_names, pos_args) \ .=update(kwds)
Normally .update returns None. The reason for that is so that it's clear you are mutating an object instead of creating a new one.
By using .=, it can return self, but still maintain the clarity between mutation and non-mutation.
How does the update method know whether it is being called via . or via .= ? I'm trying to understand how you think this is supposed to work, and not having much success. Can you give a sketch of how this .= thingy is supposed to operate?
The other alternative is to use a function. But it would be difficult to get the same behaviour along with the same efficiency.
I don't see how you can compare the efficiency of code that can be written now with code that doesn't exist yet. How do you know how efficient your __iget_method__ suggestion will be? -- Steven