<p>On Jun 15, 2012 4:46 PM, "Carl Meyer" <<a href="mailto:carl@oddbird.net">carl@</a><a href="mailto:carl@oddbird.net">oddbird.net</a>> wrote:</p>
<p>> The reason I discourage using multi-line strings as comments is that<br>
> they don't nest (which I think David mentioned earlier). If you've got a<br>
> short multi-line-string-as-comment in the middle of a function, and then<br>
> you try to use multi-line-string technique to comment out that entire<br>
> function, you don't get what you want, you get a syntax error as your<br>
> short comment is now parsed as code.</p>
<p>I think "commenting out" code and writing true comments are different functions.</p>
<p>I would not advocate multi line strings for commenting out but they work very well for long text comments. </p>
<p>Nested #s and a modern editor work well enough for commenting out IMHO and are much harder to not notice.</p>
<p>--- Bruce<br>
(from my phone)</p>
<p>On Jun 15, 2012 7:28 PM, "Devin Jeanpierre" <<a href="mailto:jeanpierreda@gmail.com">jeanpierreda</a><a href="mailto:jeanpierreda@gmail.com">@</a><a href="mailto:jeanpierreda@gmail.com">gmail.com</a>> wrote:</p>

<p>> the reason that multiline comments are so great is that<br>
> they can go virtually anywhere without too much concern. For example:<br>
><br>
>    def foo(a, b(*=None*)):<br>
>        ...<br>
><br>
> In this hypothetical code, I commented out the =None in order to run<br>
> the test suite and see if any of my code omitted that argument, maybe<br>
> to judge how reasonable it is to remove the default. Here, neither "#"<br>
> comments nor docstrings really make this easy. The closest equivalent<br>
> is:<br>
><br>
>    def foo(a, b): #=None):<br>
>        ...<br>
><br>
> And that has to be done entirely by hand, and might be especially<br>
> painful (involving copy-paste) if it isn't the last argument that's<br>
> being changed.</p>
<p>For commenting out part of a line I think best practice is duplicating the entire line as a comment and editing it directly. That handles scenarios that inline comments don't and more importantly ensures reverting is error free.</p>

<p>    # def foo(a, b=None):<br>
    def foo(a, b=[]):</p>
<p>> Python tool world seems to think that strings that aren't inside an<br>
> expression are "docstrings", not comments, and you have to be careful<br>
> to avoid being misinterpreted by your tools, which is unfortunate.</p>
<p>Agreed. But even if multiline/inline comments were added you'd still have that problem, right? </p>
<p>--- Bruce </p>