有没有办法把注释放在多行代码中?

这样行不通:

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 * ...

有没有办法在代码中将注释分成多行?

16907 次浏览

像这样做:

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

不确定 Python 是否支持您尝试做的事情。阅读 关于内联注释的 PEP8部分。将注释放在行的延续中间是“丑陋的”,并且可能令人困惑。

Python 的方法是在每一行都使用 #,如果您想要注释什么东西,或者对于内联注释,#之后的所有内容都被忽略。

如果你真的想注释一个多行语句,这是真的有必要把它放在前面或后面。

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

我当然不想就风格问题争论不休,但是仅仅因为你可以做一些事情并不意味着它就是清晰的。内联注释对于澄清只需要一个短指针的代码行非常有用。