Python3 注释¶
概念与用途¶
注释解释代码为何如此设计,解释器会忽略以 # 开始到行末的内容。文档字符串不是普通注释,而是模块、类或函数的运行时 __doc__,可被 help() 和文档工具读取。
核心语法¶
行内注释应简短;公开 API 可用三引号文档字符串说明目的、参数和异常。类型信息优先使用类型注解,不要维护容易过期的伪类型注释。
def divide(total: float, count: int) -> float:
"""返回平均值;count 必须为正整数。"""
if count <= 0:
raise ValueError("count 必须大于 0")
return total / count
print(divide.__doc__)
print(divide(10, 2))
文档层次¶
| 载体 | 面向对象 | 内容 |
|---|---|---|
| 行注释 | 维护者 | 非显然的原因与约束 |
| docstring | API 使用者 | 契约、参数、返回和异常 |
| README | 项目使用者 | 安装、运行和架构入口 |
| ADR | 团队 | 重要设计决策及取舍 |
示例:模块文档字符串¶
"""温度转换工具。
所有公开函数接收摄氏度,返回浮点结果。
"""
def to_fahrenheit(celsius: float) -> float:
"""把摄氏度转换为华氏度。"""
return celsius * 9 / 5 + 32
print(help(to_fahrenheit))
文档应与代码一同评审和测试。示例若可执行,可放入 doctest 或文档测试,减少接口改变后说明失真的风险。
常见错误与工程注意¶
- 三引号字符串只有处在规定位置才是文档字符串,不能用它随意注释代码块。
- 注释应解释约束和动机,不要重复显而易见的赋值动作。
- TODO 应包含问题链接或退出条件,避免永久遗留模糊标记。