<div dir="auto"><div><br><div class="gmail_quote"><br><br type="attribution"><blockquote class="quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">





<div lang="EN-US" link="blue" vlink="purple">
<div class="m_-1291826450300598312WordSection1">
<p class="MsoNormal">[snip]<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="font-size:10.0pt;font-family:"Courier New";color:black">>I propose `x .= y` -> `x = x . y`, for any `y`.<u></u><u></u></span></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">[snip]<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">I think you mean "any y that is a member of x" <u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">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)<u></u><u></u></p>
<p class="MsoNormal">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<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">That's a problem with your original example:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<pre><span style="color:black">>long_name = mkbuilder()<u></u><u></u></span></pre>
<pre><span style="color:black">>long_name = long_name.seta(a)<u></u><u></u></span></pre>
<pre><span style="color:black">>long_name = long_name.setb(b)<u></u><u></u></span></pre>
<pre><span style="color:black">>y = long_name.build()<u></u><u></u></span></pre>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">What do the methods seta and setb return?  If they don't return "self" you've got a problem. I think.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">FWIW why can't you just write:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">x.y<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">or for your example:<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><span style="color:black">long_name.seta(a)<u></u><u></u></span></p>
<p class="MsoNormal"><span style="color:black"><u></u> <u></u></span></p>
<p class="MsoNormal"><span style="color:black">?</span></p></div></div></blockquote></div></div></div>