<div class="gmail_quote">On Sun, Oct 14, 2012 at 5:53 PM, Guido van Rossum <span dir="ltr"><<a href="mailto:guido@python.org" target="_blank">guido@python.org</a>></span> wrote:<br><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">




A readable version of this could should not have to use lambdas.<br><div></div></blockquote><div><br>In a lot of Twisted code, it happens with methods as callback methods, something like:<br><br>d = self._doRPC(....)<br>

d.addCallbacks(self._formatResponse, self._formatException)<br>d.addCallback(self._finish)<br><br>That doesn't talk about gatherResults, but hopefully it makes the idea clear. A lot of the legibility is dependant on making those method names sensible, though. Our in-house style guide asks for limiting functions to about ten lines, preferably half that. Works for us.<br>

<br>Another pattern that's frowned upon since it's a bit of an abuse of decorator syntax, but I still like because it tends to make things easier to read for inline callback definitions where you do need more than a lambda:<br>


<br>d = somethingThatHappensLater()<br><br>@d.addCallback<br>def whenItsDone(result):<br>    doSomethingWith(result)<br><br><br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

<div><div>--Guido van Rossum (<a href="http://python.org/~guido" target="_blank">python.org/~guido</a>)<br>
</div></div></blockquote></div><br>cheers<div>lvh</div><br>