Python中创建多行注释的方法

Python中创建多行注释的方法

技术背景

在Python编程中,注释是非常重要的一部分,它可以帮助开发者解释代码的功能、用途和实现思路,提高代码的可读性和可维护性。然而,Python本身并没有像其他一些编程语言(如C、Java)那样提供专门的多行注释语法。因此,开发者需要采用一些特定的方法来实现多行注释的效果。

实现步骤

1. 使用连续的单行注释

Python的官方风格指南PEP8推荐使用连续的单行注释来实现多行注释的效果。在每行代码前添加#符号,示例如下:

1
2
# This is a multiline
# comment.

这种方法简单直接,符合Python的编码规范,也是在很多Python项目中常见的做法。大多数文本编辑器都提供了快捷方式来批量添加或移除#符号。

2. 使用三引号字符串

可以使用三引号('''""")来创建看起来像多行注释的字符串。当这些三引号字符串不是作为类、函数或模块的文档字符串(docstring,即位于类、函数或模块开头的第一个字符串)时,它们在代码中不会产生实际的影响,示例如下:

1
2
3
4
'''
This is a multiline
comment.
'''

不过需要注意的是,与真正的注释不同,三引号字符串仍然会被Python解析器解析,因此必须保证其语法的正确性。例如,以下代码会引发错误:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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

在Python 2.x中会抛出ValueError: invalid \x escape错误,在Python 3.x中会抛出SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 79-80: truncated \xXX escape错误。

3. 使用文本编辑器的快捷方式

许多文本编辑器和集成开发环境(IDE)都提供了快捷方式来批量注释或取消注释多行代码。例如:

  • PyCharm:使用Ctrl + /(Windows/Linux)或Cmd + /(Mac)来注释或取消注释当前行或选中的多行代码;使用Ctrl + Shift + /(Windows/Linux)或Cmd + Shift + /(Mac)来对选中的代码块进行块注释(在Django模板中会使用{% comment %}`和`{% endcomment %}标签)。
  • Visual Studio Code:使用Ctrl + /(Windows/Linux)或Cmd + /(Mac)来注释或取消注释选中的多行代码。
  • Notepad++:使用Ctrl + K来块注释选中的代码,使用Ctrl + Shift + K来取消块注释。
  • Sublime Text:使用Ctrl + ?(Windows/Linux)来注释或取消注释选中的多行代码,使用Shift + #来注释单行代码。

核心代码

连续单行注释示例

1
2
3
# 这是第一行注释
# 这是第二行注释
# 这是第三行注释

三引号字符串示例

1
2
3
4
'''
这是一个多行
注释示例
'''

最佳实践

  • 遵循PEP8规范:尽量使用连续的单行注释,这是Python官方推荐的做法,符合代码的可读性和一致性要求。
  • 使用文档字符串:对于类、函数和模块,使用三引号字符串作为文档字符串(docstring)来提供详细的说明。文档字符串可以通过对象的__doc__属性访问,示例如下:
1
2
3
4
5
6
7
8
9
10
11
12
def my_function(arg1):
"""
函数摘要说明。
函数的详细描述。
参数:
arg1 (int): arg1的描述
返回:
int: 返回值的描述
"""
return arg1

print(my_function.__doc__)
  • 利用编辑器快捷方式:熟练掌握所使用的文本编辑器或IDE的注释快捷方式,提高编码效率。

常见问题

三引号字符串被解析为字符串而非注释

三引号字符串在Python中本质上是字符串,而不是真正的注释。虽然在某些情况下它们看起来像注释,但解析器仍然会对其进行处理。如果三引号字符串中包含不符合语法的内容,会导致代码出错。因此,不要将三引号字符串作为真正的注释来使用,除非你能确保其语法的正确性。

注释缩进问题

无论是使用连续的单行注释还是三引号字符串,都要注意注释的缩进。不正确的缩进可能会导致代码出现IndentationError错误。在使用三引号字符串时,要确保其起始的三引号正确缩进。

不同Python版本的兼容性问题

虽然Python的基本注释语法在不同版本中保持一致,但在处理特殊字符或转义序列时可能会有差异。例如,上述提到的\x转义序列在Python 2.x和3.x中的处理方式不同。在编写注释时,要考虑代码的兼容性,避免使用可能导致版本兼容性问题的字符或语法。


Python中创建多行注释的方法
https://119291.xyz/posts/python-multiline-comments-guide/
作者
ww
发布于
2025年7月13日
许可协议