Python 代码风格

2023-01-06 更新

我的代码风格深受《 Python Coding Rule 》的影响。现将阅读时圈出的重点摘录于此,并附注少许个人评论。我不希望任何读者照搬我的代码风格。所有人都会在读写代码的漫漫长路中形成最令自己舒适的代码风格。由于团队项目更注重整体代码风格的规定和老旧代码风格的沿用,个人代码风格几乎没有发挥的空间。

章节号与《 Python Coding Rule 》一文一致。

1 介绍

略。

2 一致性建议

略。

3 代码布局

  1. 按 Tab 键缩进后自动转换成空格最好,简单整齐跨平台。
  2. 80 字符确实是极好的限制,偶尔超纲也无妨。
  3. 折叠长行的首选方法是使用括号。
  4. 类与类之间空两行,其它情况都空一行。
  5. 使用 UTF-8 是王道。

4 导入

  1. 按照标准库、主包、分包的顺序导入。
  2. 内包的导入不推荐使用相对导入,推荐使用绝对路径。对于需要移植别处的文件,建议附加一个将它本地化的 py 程序。如果你像我一样非要搞相对导入,可以借鉴以下代码。

TODO

5 空格

  1. 紧邻括号的地方无需空格。
  2. 对于需要排列的赋值,在等号左侧长度方差较小的情况下,可以试试让等号对齐。

6 注释

  1. 如果注释很短,最好省略末尾的句号。
  2. 坚持使用中文来注释,最终发布的时候再给出英文版,开发时每一个瞬间都要用在程序代码的思考上,而不是单词语法的回忆上。
  3. 文档字符串的三引号独立成行。

7 文档化

略。

8 版本注记

略。

9 命名约定

  1. 永远不要用 I (upper case of i)l (lower case of L)O (upper case of the letter between N & P)o (lower case of the letter between N & P) 作为单字符的变量名。
  2. 模块名应当小写且不含下划线(万恶的 QT 坏我统一大业)。
  3. Error 用大驼峰式命名。
  4. 不想被导入的全局变量或内部函数或类之前需要加下划线。
  5. 函数名应当小写,适当添加下划线,不过我个人更倾向于小驼峰式命名。
  6. 带一个前导下划线的类成员,是放在透明玻璃柜里的商品,能看不能拿;带两个前导下划线的类成员,是放在密封保险箱里的商品,看都不让看。

10 设计建议

  1. 基于类的异常总是好过基于字符串的异常。模块和包应该继承内建的 Exception 类,定义它们自己域内的异常类,并附加文档字符串。
  2. 要检查前缀或后缀时用 startswith()endswith()
  3. 判定序列是否为空,用 if seqif not seq 比计算长度更好。
  4. 不要用 == 来判断 bool 的值。