1. 为什么需要代码风格指南?
本文中大部分内容来自ChatGPT。
代码风格指南是一种旨在促进代码可读性、可维护性和可重用性的约定。虽然它们并不强制执行特定的编码标准,但它们建议一些最佳实践和常规约定,以帮助开发者编写更具一致性、可读性和可维护性的代码。
以下是一些代码风格指南的重要原因:
可读性:代码风格指南可以帮助开发者编写更加可读的代码。这有助于降低代码维护成本,因为代码更容易理解和修改。
一致性:代码风格指南可以确保代码在整个项目中保持一致的外观和感觉。这有助于提高代码可维护性和可重用性,因为开发者可以更轻松地了解代码如何工作。
错误:代码风格指南可以减少编码错误的可能性。例如,强制实施缩进约定可以防止不正确的缩进导致的语法错误。
沟通:代码风格指南可以提高代码的可交流性,因为开发者可以轻松地了解代码中使用的惯用语和惯例。
最佳实践:代码风格指南可以提供最佳实践和规则,以确保开发人员遵循最佳实践和规则,以提高代码质量和可重用性。
在现代软件开发中,代码风格指南已成为一种非常重要的约定,以帮助团队开发一致、可读性强且易于维护的代码。
本文中,我们来学习一下Google Python代码风格指南。
参考文档:
- google/styleguide
- Google Python Style Guide
- PEP 257 – Docstring Conventions
- PEP 3107 – Function Annotations
2. 关键十条
- 缩进使用四个空格。不要使用制表符,也不要混合使用空格和制表符。
- 变量和函数名应该是小写字母,用下划线分隔单词。模块名应该是小写字母,用下划线分隔单词。
- 类名应该是驼峰式命名,即首字母大写,后续单词首字母也大写。
- 模块级别的常量应该使用全大写字母和下划线分隔单词。
- 函数和方法参数应该使用self、cls作为实例方法和类方法的第一个参数。
- 行的长度不应该超过80个字符,注释的行长度不应该超过72个字符。
- 使用文档字符串(Docstrings)对模块、函数、类和方法进行文档化。
- 在类定义中使用无参的super()调用父类构造函数。
- 使用list comprehension来替代for循环进行列表操作。
- 每个模块应该具有如下的结构:文件注释、模块导入、常量定义、函数定义、类定义等。
除了这十条规则之外,还有很多其他的编码规范需要开发者遵循,以确保代码的质量和可维护性。
3. Docstring
代码风格指南中的内容非常多,如果说哪个最重要,我认为是Docstring(文档字符串)。
Docstring指南:
- 模块级别的文档应该在模块的顶部使用文档字符串进行描述。
- 函数、类和方法应该在其定义之后的第一行使用文档字符串进行描述。
- 使用三重引号来创建文档字符串,并确保文档字符串格式正确。
- 文档字符串的第一行应该是一个简要的摘要,概括函数、类或方法的功能。
- 在文档字符串的第一行之后,应该使用一个空白行分隔摘要和详细描述。
- 在文档字符串的详细描述中,可以提供更多有关函数、类或方法的信息,包括参数、返回值、异常、实现细节等。
- 参数和返回值应该按照参数名称和类型进行描述,并在它们之前添加“Args”和“Returns”等关键词。
- 异常应该按照异常类型进行描述,并在它们之前添加“Raises”关键词。
- 在类的文档字符串中,应该描述类的构造函数和所有公共方法。
- 在函数和方法的文档字符串中,应该描述函数或方法的参数、返回值、异常、实现细节等。
函数和方法的Docstring示例:
1 | def fetch_smalltable_rows( |
类的Docstring示例:
1 | class SampleClass: |
块和行的Docstring示例:
1 | # We use a weighted dictionary search to find out where i is in |
VSCode中的自动生成Docstring的方法,参考文档《VSCode常用快捷键和配置》
4. 后记
更多详细内容,请移步阅读Google Python Style Guide