<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Dec 5, 2013 at 1:24 PM, Guido van Rossum <span dir="ltr"><<a href="mailto:guido@python.org" target="_blank">guido@python.org</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div id=":3g8" style="overflow:hidden">How would you get the docstrings in? It seems cramming that much on a<br>

single line doesn't help readability (even though I agree there is a<br>
fair amount of boilerplace).</div></blockquote></div><br>One way to reduce the amount of boilerplate code is to make <span style="font-family:arial,sans-serif;font-size:12.666666984558105px">abstractmethod to supply </span><span style="font-family:arial,sans-serif;font-size:12.666666984558105px">raise NotImplementedError body when none is given.  Then you can write</span></div>
<div class="gmail_extra"><span style="font-family:arial,sans-serif;font-size:12.666666984558105px"><br></span></div><div class="gmail_extra"><span style="font-family:arial,sans-serif;font-size:12.666666984558105px">class Foo:</span></div>
<div class="gmail_extra"><span style="font-family:arial,sans-serif;font-size:12.666666984558105px">    @abc.abstractmethod</span></div><div class="gmail_extra"><span style="font-family:arial,sans-serif;font-size:12.666666984558105px">    def do_bar(self):</span></div>
<div class="gmail_extra"><span style="font-family:arial,sans-serif;font-size:12.666666984558105px">         """perform bar"""</span></div><div class="gmail_extra"><br></div><div class="gmail_extra">
<br></div><div class="gmail_extra">instead of</div><div class="gmail_extra"><br></div><div class="gmail_extra"><div class="gmail_extra"><span style="font-family:arial,sans-serif;font-size:12.666666984558105px">class Foo:</span></div>
<div class="gmail_extra"><span style="font-family:arial,sans-serif;font-size:12.666666984558105px">    @abc.abstractmethod</span></div><div class="gmail_extra"><span style="font-family:arial,sans-serif;font-size:12.666666984558105px">    def do_bar(self):</span></div>
<div class="gmail_extra"><span style="font-family:arial,sans-serif;font-size:12.666666984558105px">         """perform bar"""</span></div><div class="gmail_extra"><span style="font-family:arial,sans-serif;font-size:12.666666984558105px">         </span><span style="font-family:arial,sans-serif;font-size:12.666666984558105px">raise NotImplementedError</span></div>
</div><div class="gmail_extra"><br></div><div class="gmail_extra">The docstring will be required when skipping the body which is probably a good thing. </div></div>