Python评论:#与字符串

时间:2009-04-02 07:25:00

标签: python

关于将注释放在Python源代码中的“标准”方法:

def func():
    "Func doc"
    ... <code>
    'TODO: fix this'
    #badFunc()
    ... <more code>

def func():
    "Func doc"
    ... <code>
    #TODO: fix this
    #badFunc()
    ... <more code>

我更喜欢将一般注释写为字符串而不是前缀#。 官方的Python风格指南没有提到使用字符串作为注释(如果我在阅读时没有错过它)。

我喜欢这种方式主要是因为我认为#字符看起来很丑陋。据我所知,这些字符串没有做任何事情。

这样做有缺点吗?

3 个答案:

答案 0 :(得分:62)

不要滥用字符串(无操作语句)作为注释。文档字符串,例如模块,类或函数中的第一个字符串是特殊的,绝对值得推荐。

请注意,文档字符串是文档,文档和注释是两回事!

  • 了解代码所用的内容非常重要。
  • 评论解释代码如何

使用代码的人阅读文档,希望了解代码的人发表评论,例如为了维持它。

使用字符串进行评论有以下(潜在的)缺点:

  • 让那些不知道字符串什么也不做的人感到困惑。
  • 在代码编辑器中,注释和字符串文字的突出显示不同,因此您的样式可能会使您的代码难以阅读。
  • 它可能影响性能和/或内存使用(如果在字节码编译期间没有删除字符串,则删除注释是在扫描程序级别完成的,因此它最终会更便宜)

对于Python程序员来说最重要的是:它不是pythonic:

  

应该有一个 - 最好只有一个 - 显而易见的方法。

坚持标准,使用评论。

答案 1 :(得分:6)

当然,缺点是阅读它的其他人会发现代码字符串和注释字符串是交错的,这可能会令人困惑。

答案 2 :(得分:5)

我认为只有定义(或类)中的第一个字符串文字是“特殊的”,即由解释器存储到定义的对象(或类')docstring中。

您在代码中放置的任何其他字符串文字最坏的意思是解释器将在运行时构建字符串值,然后将其丢弃。这意味着通过使用字符串常量乱丢代码来执行“注释”可能会降低性能。

当然,我没有对此进行基准测试,也不清楚Python解释器是否足以确定。