当前位置:首页>python>写Python注释还有规范?按这个来,同事都夸你代码像文档

写Python注释还有规范?按这个来,同事都夸你代码像文档

  • 2026-10-11 06:32:28
写Python注释还有规范?按这个来,同事都夸你代码像文档

写Python注释还有规范?按这个来,同事都夸你代码像文档

刚工作那会儿,我特别讨厌写注释。觉得代码自己能看懂就行,注释是浪费时间。

有一次接手一个老项目,打开文件直接蒙了。一个函数三百行,没有一句注释。变量名字是a,b,c。当时真想骂人。后来自己返工查自己三个月前的代码,同样认不出写了什么。

从那以后,我开始认真研究注释怎么写。不是那种“这里加了一个数”的废话,是真正能帮到人的注释。

核心就一条:注释要说“为什么”,不要说“是什么”。

代码本身就能表达“是什么”。变量赋值,函数调用,逻辑判断,这些都是代码在说的内容。注释再多说一遍就是噪音。

比如这样写的注释就很蠢:

 把a赋值给b
b = a

谁看不出来?真正需要注释的是那些隐形的上下文。

函数注释要写清楚输入输出,最好带类型和例子。

很多人写函数注释只写一行,说“这个函数处理数据”。等于没写。应该这样:

def parse_user_info(raw_data):
    '''解析用户信息
    Args:
        raw_data: dict, 来自接口的原始数据, 结构见文档X
    Returns:
        dict: 包含name, age, email三个字段
    Raises:
        ValueError: 缺少必要字段时抛出
    '''

别人看到这个注释,立刻知道怎么调,返回什么,出错怎么办。不用再去看文档,不用翻代码。

代码块注释要讲业务目的。

业务逻辑是最容易看不懂的。比如有一段排序代码,为什么用冒泡排序不用快速排序,可能是数据量很小。这时候注释要写“接口返回数据量小于100条,冒泡排序够用且稳定”。

再比如一段复杂的条件判断,为什么是这几个条件。可能是因为业务规则里要求同时满足ABC三种情况。直接写“根据业务规则A和B和C的复合条件过滤”,比写一大堆if判断的推理过程有用得多。

难懂的算法逻辑要单独加行内注释。

有时候算法本身就很绕。比如递归处理树形结构,或者用位运算做状态判断。这种地方不写注释,别人看三遍也可能看不懂。可以在关键逻辑前加一行,简单说“这一步是为了避免重复计算”或者“利用异或运算判断奇偶差异”。

有个小技巧。变量名字起得好,注释能少一半。

把temp换成user_input,把data换成order_list。代码自己就在说话。注释就用来补代码说不清的部分。

还有一个容易被忽视的,TODO注释要写明责任人。

很多人写TODO就写“后面要优化”。下次谁看到这句话都犯愁,不知道谁写的,不知道啥时候改。正确的写法是“TODO(张三): 提升查询性能, 计划用缓存替代”,这样别人就知道该找谁问,也知道问题背景。

我见过最好的注释风格,是一个同事写的。他的代码里,每个文件开头有一段目录注释,列出文件里有哪些类哪些函数,大概什么功能。新同事看代码,先看这段目录,对整个文件心里就有数了。这个习惯我后来也学了,确实好用。

还有个规矩,注释必须和代码同步更新。

代码改了,注释不改,比没写注释还坑。别人看着旧的注释理解新代码,肯定出问题。所以每次改代码,顺手看一眼相关注释要不要改。养成习惯就不觉得麻烦。

最后说个实在的。注释写得好不好,有个最简单的检验标准。把你所有的注释摘出来,如果拼在一起能讲清楚整个业务逻辑,注释就合格了。

同事夸你代码像文档,不是夸你注释多,是夸你的注释精准有用。少即是多,重点说清楚“为什么这样写”,比堆砌一大堆“做了什么”强得多。

写注释不花多少时间,省的是后面翻代码骂娘的时间。你试试看,坚持半个月,同事对你的评价绝对不一样。

最新文章

随机文章