如何编写多行注释?大多数语言都有块注释符号,例如:
/*
*/
您可以使用三引号字符串。当它们不是文档字符串(类/函数/模块中的第一件事)时,它们将被忽略。
'''
This is a multiline
comment.
'''
(请确保适当缩进前导'''
以避免IndentationError
。)
Python的创造者Guido van Rossum将此称为"专业提示"在推特上发表了这个消息。
然而,Python的样式指南PEP8更喜欢使用连续的单行注释,就像这样:
# This is a multiline
# comment.
这也是许多项目中的常见做法。文本编辑器通常都有一个快捷方式,可以轻松地完成此操作。
.pyc
文件中消失。我编辑了答案,并将“模块”添加到具有文档字符串的事物列表中。 - Petr Viktorin"""
表示函数文档字符串,而使用 '''
表示块注释会更有帮助。这样可以在您通常的文档字符串周围包裹 '''
,而不会冲突。 - RoshamboPython确实有多行字符串/注释语法,除非用作文档字符串,多行字符串不会生成任何字节码——就像 #
-前缀的注释一样。实际上,它的作用与注释完全相同。
另一方面,如果你说这种行为必须在官方文档中记录才能成为真正的注释语法,那么,是的,你可以说它不能作为语言规范的一部分得到保证。
无论如何,你的文本编辑器也应该能够轻松地注释掉所选的区域(通过在每行前面放置一个#
)。如果没有,请切换到一个支持此功能的文本编辑器。
在没有某些文本编辑功能的情况下编写Python可能会很痛苦。找到合适的编辑器(并知道如何使用它)可以极大地改善Python编程体验。
文本编辑器不仅应该能够注释掉所选区域,还应该能够轻松地移动代码块,并在按下Enter键时自动将光标放置在当前缩进级别。代码折叠也可能很有用。
为了防止链接失效,这里是Guido van Rossum的推文的内容:
@BSUCSClub Python小贴士:您可以将多行字符串用作多行注释。除非用作文档字符串,否则它们不会生成代码!:-)
从被接受的答案中得知...
你可以使用三引号字符串。当它们不是文档字符串(类/函数/模块中的第一件事)时,它们会被忽略。
这个说法并不准确。与注释不同,无论三引号字符串出现在源代码的哪个位置,它们仍然会被解析,并且必须语法正确。
如果您尝试运行此代码...
def parse_token(token):
"""
This function parses a token.
TODO: write a decent docstring :-)
"""
if token == '\\and':
do_something()
elif token == '\\or':
do_something_else()
elif token == '\\xor':
'''
Note that we still need to provide support for the deprecated
token \xor. Hopefully we can drop support in libfoo 2.0.
'''
do_a_different_thing()
else:
raise ValueError
你将会得到以下两种结果之一...
ValueError: invalid \x escape
...在Python 2.x或者...
SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 79-80: truncated \xXX escape
本文介绍如何在 Python 3.x 中进行多行注释,以被解析器忽略的方式实现。
唯一的方法是...
elif token == '\\xor':
# Note that we still need to provide support for the deprecated
# token \xor. Hopefully we can drop support in libfoo 2.0.
do_a_different_thing()
r'原始字符串'
-- r'\xor' == '\\xor'
。 - GingerPlusPlus*/
,否则会终止该块注释。 - user1919238在Python 2.7中,多行注释的写法为:
"""
This is a
multilline comment
"""
如果你正在一个类中,你应该适当地进行缩进。
例如:
class weather2():
"""
def getStatus_code(self, url):
world.url = url
result = requests.get(url)
return result.status_code
"""
weather2
的注释实际上是docstring,因为它是类中的第一件事情。 - Ken Williams在Python中并没有多行注释的功能,#
是注释单行代码的唯一方法。
许多人将''' a comment '''
作为他们的解决方案。
看起来它可以工作,但在Python中,'''
会将其包含的行视为常规字符串,解释器不会像使用#
注释那样忽略它。
我认为它不会影响到代码,除非是多行字符串。然而,大多数Python集成开发环境都有一个快捷键可以“注释掉”多行代码。
如果您在{{代码}}中添加注释
"""
long comment here
"""
在脚本中间,Python / linters将无法识别。折叠将混乱不堪,因为上面的注释不是标准建议的一部分。最好使用
# Long comment
# here.
Vjgcc
自动注释掉长行注释。其中Vj
选择两行代码,gcc
将它们注释掉。:.,.+1s/^/# /g
这将用#
替换当前和下一行的第一个字符。
不幸的是,字符串化并不总是可以用作注释!因此,更安全的做法是使用标准方法,在每行前加上#
。
下面是一个例子:
test1 = [1, 2, 3, 4,] # test1 contains 4 integers
test2 = [1, 2, '''3, 4,'''] # test2 contains 2 integers **and the string** '3, 4,'
#
作为注释的唯一方式是有道理的。我猜这样做可以让Python脚本更容易被解释。 - Victor Zamanian