Python多行注释缩进

3

我有一个Django项目,在一些地方我们有缩进的多行注释,如下所示:

field = models.IntegerField(default=0, null=True)  # 0-initial_email_sent
                                                   # 1-second_email_sent
                                                   # 2-third_email_sent

这显然违反了PEP,但在我看来,有助于增强可读性。当然,我可以像这样添加注释:

# 0-initial_email_sent
# 1-second_email_sent
# 2-third_email_sent
field = models.IntegerField(default=0, null=True)

我更喜欢第一个。

有没有办法缩进注释,而不违反PEP规范?


不知道这是否是“规范的”,但是Python风格指南(PEP 8)区分了块注释和行内注释。不存在所谓的行内块注释。 - tobias_k
3
如果你的“字段”被命名为“number_of_emails_sent”,并且你使用了适当的整数值,那么你就不需要注释。 - Aya
2个回答

4

魔法数字是不好的,所以最好使用命名(伪)常量来进行文档化:

INITIAL_EMAIL_SENT = 0
SECOND_EMAIL_SENT = 1
THIRD_EMAIL_SENT = 2
field = models.IntegerField(default=INITIAL_EMAIL_SENT, null=True) 

作为一般规则,越少的注释越好(清晰的代码不需要或非常少量的注释)。 对于关于在哪里放置注释的更一般的回答,特别是多行注释: 1. 在注释项之前编写注释是大多数Python用户期望的,因此对于我们大多数人来说,“更易读”。 2. 它还使得代码编辑更容易(您不必将注释与代码混合,您不必维护注释缩进等)。 如果这是您自己的个人项目,您不打算共享它或让其他人处理它,那么您可以自由使用任何编码风格/约定,pep08不是信仰,但是如果其他人必须处理您的代码,他肯定会因为这种注释方式而讨厌你。

1
他在谈论注释。为什么要引入常量?我在Python方面也很幼稚。只是问个问题。我不明白你的意思。 - Mahammad Adil Azeem
@AdilMalik: 什么是魔数,为什么它不好? - GingerPlusPlus
@GingerPlusPlus 这就是我在这里询问Bruno解释的原因。我仍然不确定他为什么认为常量比三引号字符串更好。 - Mahammad Adil Azeem
@AdilMalik cf 我添加的解释。 - bruno desthuilliers
1
@НазарТопольський 我理解问题并不是关于魔数,但我的观点是清晰的代码需要更少的注释 ;) - bruno desthuilliers
显示剩余2条评论

0

这个问题是这个问题的副本
你也可以像这样使用多行注释。

"""
This is how yo can use Python Multi-line Comments
Line two is here.
Line three is here.
"""

@Mitch 现在正确了吗?谢谢,我以前不知道 :) - Mahammad Adil Azeem
3
这不是多行注释,而是一个(三引号)字符串。 - bruno desthuilliers
2
同样的问题在这里被问到了,他们说这是一个多行注释。@brunodesthuilliers https://dev59.com/l2sz5IYBdhLWcg3wuKa7 - Mahammad Adil Azeem
多行字符串可以用作注释,因为它们可以用来描述某些内容并且不会生成字节码,但是它们并不是真正的注释。例如,如果您将其放在函数声明后面,它将被视为文档字符串,但是我所知道的IDE并不会将其突出显示为注释,而且实际上看起来很奇怪。 - Назар Топольський
2
@AdilMalik 他们错了。请看:https://dev59.com/l2sz5IYBdhLWcg3wuKa7#38100436 - Aya
显示剩余2条评论

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接