Is there a way to put comments in multiline code?

Question:

This doesn’t work:

something = 
    line_of_code *     #  Comment
    another_line_of_code *     #  Comment
    and_another_one *          #  Comment
    etc

Neither does this:

something = 
    #  Comment 
    line_of_code * 
    #  Comment 
    another_line_of_code * ...

Neither does this:

something = 
    ''' Comment ''' 
    line_of_code * 
    ''' Comment ''' 
    another_line_of_code * ...

Is there a way to make comments in the code broken into multiple lines?

Asked By: MarcinKonowalczyk

||

Answers:

Do it like that:

a, b, c, d = range(1, 5)

result = (
    # First is 1
    a *
    # Then goes 2, result is 2 now
    b *
    # And then 3, result is 6
    c *
    # And 4, result should be 24
    d
)

Actually, according to PEP8 parentheses are preferred over slashes, when breaking something into multiple lines:

The preferred way of wrapping long lines is by using Python’s implied line continuation inside parentheses, brackets and braces. Long lines can be broken over multiple lines by wrapping expressions in parentheses. These should be used in preference to using a backslash for line continuation.

In your case it also allows to put comments.

Here is a proof, that it works: http://ideone.com/FlccUJ

Answered By: Tadeck

Not sure what you are trying to do is supported by python. Read PEP8 section about inline comments. Putting comments in the middle of line continuations is “ugly” and probably confusing.

Python way is with # on every line if you want to comments something or for inline comments everything after # is ignored.

If you really want to comment a multiline statement that is really necessary put it before or after it.

a, b, c, d = range(1, 5)
# a is ..., b is ...
# c is ..., d is ...
result = (a, b, c, d)

definately don’t want to get into an argument about style, but just because you can do something doesn’t mean that it is clear. Inline comments are great for clarifyling short lines of code that just need a short pointer.

Answered By: Joop