web-dev-qa-db-ja.com

Python:バックスラッシュの後の '#'コメント

これは機能しません:

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

これも行いません:

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

これも行いません:

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

コード内のコメントを複数行に分割する方法はありますか?

47

そのようにしてください:

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
)

実際、何かを複数の行に分割する場合、 PEP8によると 括弧はスラッシュよりも優先されます。

長い行をラップする好ましい方法は、Pythonの暗黙の行継続を括弧、括弧、中括弧で囲むことです。長い行は、式を括弧で囲むことにより、複数行に分割できます。これらは、行継続のためにバックスラッシュを使用するよりも優先して使用する必要があります。

あなたの場合、コメントを付けることもできます。

これが機能することの証明です: http://ideone.com/FlccUJ

41
Tadeck

何をしようとしているのかがpythonでサポートされているかわかりません。 インラインコメントに関するPEP8セクション をお読みください。コメントを行の途中に置くと、「醜い」ことになり、おそらく混乱を招きます。

Pythonの方法では、何かにコメントを付けたい場合、または#の後のすべてをインラインコメントにしたい場合は、すべての行に#を無視します。

本当に必要な複数行のステートメントにコメントを付けたい場合は、その前または後に置きます。

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

間違いなくスタイルについて議論したくないのですが、何かができるからといって、それが明確であるとは限りません。インラインコメントは、短いポインタが必要な短いコード行を明確にするのに最適です。

0
Joop