对Python中单行代码的长篇评论

时间:2015-05-08 15:56:18

标签: python comments

尽管已经阅读了PEP8关于评论主题的内容,但我仍然想知道如何最好地评论Python中的单行代码。

当所讨论的代码行(非常)很短时,给出的示例很好:

x = x + 1                 # Compensate for border

但如果行或评论更长,则事情变得更加困难。例如:

import numpy as np
import matplotlib.pyplot as plt
a = np.random.random([3, 3])
b = np.random.random([3, 3])
coords = zip(a.ravel(), b.ravel()) # match elements of a with elements of b ignoring shape
plt.scatter(*zip(*coords))

评论相当长,代码行也是如此,使得整个事情比可接受的行长更长。

我通常会将评论置于行上方,但不清楚评论是否适用于plt行:

# match elements of a with elements of b ignoring shape
coords = zip(a.ravel(), b.ravel())
plt.scatter(*zip(*coords))

我倾向于通过在两行之间插入换行来解决这个问题:

# match elements of a with elements of b ignoring shape
coords = zip(a.ravel(), b.ravel())

plt.scatter(*zip(*coords))

我也做过这件事,但似乎有点过分了:

"""
match elements of a with elements 
of b ignoring shape
"""
# ================================
coords = zip(a.ravel(), b.ravel())
# ================================
plt.scatter(*zip(*coords))

有没有可以接受的方法呢?

1 个答案:

答案 0 :(得分:0)

我似乎最看重的风格是将评论放在上面一行。在大多数情况下,阅读代码的人将了解记录的行为何时结束。如果不清楚引用行下面的代码是什么,也许它也需要评论。

我也会尝试凝结我的评论。而不是:

# match elements of a with elements of b ignoring shape
coords = zip(a.ravel(), b.ravel())

我会写:

coords = zip(a.ravel(), b.ravel())  # match elements of a and b, ignore shape

这对于PEP8来说足够短。虽然使用较长的行可能无法做到这一点。