Python中的文档字符串是紧跟在函数、类、模块定义之后的字符串字面量,用于说明对应代码块的功能、参数、返回值等信息,是Python官方推荐的代码文档化方式。

文档字符串的基础语法
文档字符串通常使用三引号包裹,可以是三个单引号或者三个双引号,只要前后引号类型一致即可。它会被Python解释器自动赋值给对应对象的__doc__属性,我们可以通过这个属性获取文档字符串的内容。
下面是一个最简单的文档字符串示例:
def add(a, b):
"""计算两个数的和"""
return a + b
# 获取函数的文档字符串
print(add.__doc__)
# 输出:计算两个数的和
函数文档字符串的编写规范
对于函数的文档字符串,通常需要包含功能说明、参数说明、返回值说明三个部分,业内常用的规范是Google风格或者NumPy风格,下面以Google风格为例说明。
Google风格函数文档字符串示例
def divide(dividend, divisor):
"""计算两个数的商
Args:
dividend (int/float): 被除数
divisor (int/float): 除数
Returns:
float: 两个数的商结果
Raises:
ZeroDivisionError: 当除数为0时抛出该异常
"""
if divisor == 0:
raise ZeroDivisionError("除数不能为0")
return dividend / divisor
上述示例中,第一部分是对函数功能的简要说明,之后分别用Args标注参数信息,Returns标注返回值信息,Raises标注可能抛出的异常信息,每个部分的格式清晰,便于阅读。
类和模块的文档字符串编写
类的文档字符串需要说明类的功能、主要属性以及使用注意事项,模块的文档字符串则放在模块的最开头,说明整个模块的用途和相关信息。
类文档字符串示例
class Calculator:
"""简易计算器类
提供基础的加减乘除运算功能,所有方法均为静态方法,无需实例化即可调用。
Attributes:
precision (int): 计算结果的保留小数位数,默认值为2
"""
precision = 2
@staticmethod
def multiply(a, b):
"""计算两个数的乘积"""
return round(a * b, Calculator.precision)
文档字符串的提取和使用
Python内置的help()函数会自动读取对象的__doc__属性并格式化输出,我们也可以自己编写逻辑提取文档字符串,用于生成自动化文档。
import math # 查看math模块的文档字符串 print(help(math)) # 查看math.sqrt函数的文档字符串 print(math.sqrt.__doc__)
编写规范的文档字符串不仅能让其他开发者快速理解你的代码逻辑,也方便后续使用工具自动生成API文档,是Python开发中非常实用的好习惯。