在 Python 3.5 中,IDE 如何将三重引号 (""") 视为注释?

In Python 3.5, how are triple quotes (""") considered comments by the IDE?

我的 CS 老师告诉我,“””三重引号用作注释,但我将其作为带有换行符和缩进的字符串学习。这让我想到了 - python 完全 相关语句之外的三引号行?

"""is this completely ignored like a comment"""

——或者,计算机真的在考虑这个吗?

三重引号字符串被许多开发人员用作注释,但它实际上不是注释,它类似于 python 中的常规字符串,但它允许字符串在多行中。您会发现没有官方参考文献将三引号字符串作为注释。

在python中,只有一种评论以散列#开头,并且只能包含一行文本。

根据 PEP 257,它可以用作文档字符串,这又不是真正的注释。

def foo():
    """
    Developer friendly text for describing the purpose of function
    Some test cases used by different unit testing libraries
    """
   <body of the function>
   

您可以像处理单引号字符串一样将它们分配给一个变量:

x = """a multi-line text
enclosed by
triple quotes
"""

此外,如果您在 repl 中尝试,会打印三引号字符串,如果它真的是评论,是否应该打印?:

>>> #comment
>>> """triple quoted"""
'triple quoted'

正如其他人已经指出的那样,它们确实是字符串而不是 Python 中的注释。我只是想为您的问题“计算机是否真的在考虑它?”添加更多背景信息?

答案是肯定的,因为它不是评论。以下面的代码为例:

def my_func():
"""
Some string
"""
    print("Hello World!")
my_func()

尝试 运行 这实际上会因为缩进而产生语法错误。

据我所知,三重引号可用于两种目的,但 # 是评论的标准。

根据this网站,我能理解的是''' This ''' 可以用作注释,并且因为它们在技术上被处理为文档字符串(未测试)' This ' 也可以根据放置位置作为注释。然而,尽管单引号和三引号可以用作注释,但并不意味着它们是注释。例如,# 注释被解释器完全忽略,而 ''' 注释可能被加载到内存中(只是一个可能的猜测,未证实)。但据我所知,它们并未作为注释处理,如下所示:

所以它们不是,但它们可以用作评论。一般来说,使用#.

编辑: 正如@BTables 指出的那样,如果你没有正确缩进它们,你会得到一个缩进错误。所以它们确实是作为字符串处理的。