[Python-ideas] "Immutable Builder" Pattern and Operator

Gerald Britton gerald.britton at gmail.com
Mon Jan 23 10:52:25 EST 2017


[snip]



>I propose `x .= y` -> `x = x . y`, for any `y`.



[snip]



I think you mean "any y that is a member of x"



Also, note that this syntax means that x will be rebound to the result of
calling x.y, whatever that is (frequently, None, for mutating methods)

In general, you can't count on methods to return references to their
instances, even though it's handy for fluent coding, so this side effect
may be unexpected to some



That's a problem with your original example:



>long_name = mkbuilder()

>long_name = long_name.seta(a)

>long_name = long_name.setb(b)

>y = long_name.build()



What do the methods seta and setb return?  If they don't return "self"
you've got a problem. I think.



FWIW why can't you just write:



x.y



or for your example:



long_name.seta(a)



?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-ideas/attachments/20170123/ae9b8195/attachment.html>


More information about the Python-ideas mailing list