我的 CS 老师告诉我,“””三引号用作注释,但我将它作为带有换行符和缩进的字符串来学习。这让我想到 - python在相关语句之外完全三引号行吗?
"""is this completely ignored like a comment"""
- 或者,计算机真的在考虑这个吗?
许多开发人员使用三重引号字符串作为注释,但它实际上不是注释,它类似于 python 中的常规字符串,但它允许字符串在多行中。您会发现没有将三引号字符串作为注释的官方参考。
在 python 中,只有一种以 hash 开头的注释,#并且只能包含一行文本。
根据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 '也可以作为评论,具体取决于放置它的位置。但是,即使单引号和三引号都可以用作注释,但这并不意味着它们是注释。例如,#注释被解释器完全忽略,而'''注释可能被加载到内存中(只是一个可能的猜测,没有得到证实)。但据我所知,它们没有作为评论处理,如下所示:
所以它们不是,但它们可以用作注释。一般来说,使用#.
编辑:正如@BTables 指出的那样,如果您没有正确缩进,您将收到缩进错误。所以它们确实被当作字符串处理。