通过与 Jira 对比,让您更全面了解 PingCode

  • 首页
  • 需求与产品管理
  • 项目管理
  • 测试与缺陷管理
  • 知识管理
  • 效能度量
        • 更多产品

          客户为中心的产品管理工具

          专业的软件研发项目管理工具

          简单易用的团队知识库管理

          可量化的研发效能度量工具

          测试用例维护与计划执行

          以团队为中心的协作沟通

          研发工作流自动化工具

          账号认证与安全管理工具

          Why PingCode
          为什么选择 PingCode ?

          6000+企业信赖之选,为研发团队降本增效

        • 行业解决方案
          先进制造(即将上线)
        • 解决方案1
        • 解决方案2
  • Jira替代方案

25人以下免费

目录

为什么Python代码要写得美观而明确

写美观和明确的代码可以帮助更好地理解代码的意图和功能,使得以后的维护和更新工作变得更加容易。此外,美观和明确的代码也可以让其他人更容易阅读和理解你的代码,这对于团队协作或代码复用来说非常重要。

一、为什么Python代码要写得美观而明确

写美观和明确的代码可以帮助更好地理解代码的意图和功能,使得以后的维护和更新工作变得更加容易。此外,美观和明确的代码也可以让其他人更容易阅读和理解你的代码,这对于团队协作或代码复用来说非常重要。最后,美观和明确的代码也可以帮助降低出错的概率,因为编写易读的代码可以使你更容易发现错误或潜在的问题。

所以,不仅仅是python,其他语言也是一样。这是一个态度,也是一个提高自己的方法,是一个循序渐进的而过程。

核心准则

缩进

优选使用4个空格。

目前几乎所有的IDE都是默认tab转为4个空格,没有大问题。

行的最大长度

79个字符。

曾经笔者认为这是个“过时”的建议,目前做开发基本都是大屏幕,写代码全屏的时候编辑器足以容纳120字符一行或者更长。但是如果要在web上比较两次提交的代码差异,显然是会导致代码换行,或者如果左右滑动,增加了比较的难度,在多年实践之后(2016-2020),所以目前还是使用建议的最大行长度。

导入

导入位于文件顶部,在文件注释之后。 导入通常是单独一行。

# Correct:

import os

import sys

# Wrong:

import sys, os

或者这样也是可以的:

# Correct:

from subprocess import Popen, PIPE

导入应该按照以下顺序分组:

  1. 标准库导入
  2. 相关的第三方导入
  3. 特定的本地应用/库导入 在每个导入组之间放一行空行。 推荐绝对导入,因为它们更易读;处理复杂包布局时明确的相对导入可以用来替代绝对导入,因绝对导入过于冗长。

此外,根据实践经验,建议移除所有不必要的imports。

其他如有细节问题,查看文档

导入这部分,通过Python库isort可以完美解决(vscode默认使用isort),在vscode中isort的默认参数便完全符合上面的编码规范,这里介绍笔者一些个人的风格设置,通过设置isort的参数可以实现:

  1. 当from .. import …超过行长度限制时,重新起一行:–sl/–force-single-line-imports
  2. 强制通过包名排序:–fss/–force-sort-within-sections

并可设置为保存时自动排序imports,在vscode中配置为:

{

    “editor.codeActionsOnSave”: {

        “source.organizeImports”: true

    },

    “python.sortImports.args”: [

        “–force-sort-within-sections”,

        “–force-single-line-imports”

    ],

}

4 注释

切忌注释和代码不一致!!,这比没有注释更让人抓狂。 主要遵守以下要点:

  1. 修改代码时,优先修改注释;
  2. 注释应该是完整的句子。所以名列前茅个单词首字母必须大写,除非是名列前茅个单词是小写字母开头的标识符;
  3. 短注释可以不加句号结尾,完整句子的注释必须要句号结尾;
  4. 注释每行以一个#加一个空格开头;
  5. 块注释需要使用相同级别的缩进;
  6. 行内注释则必须用至少两个空格和代码隔开;
  7. 尽量让你的代码“会说话”,不写不必要的注释。

文档字符串(a.k.a. “docstrings”)

为所有公共模块,函数,类和方法书写文档字符串。细节可以查看PEP 257。

对于docstrings,CLion有很好的支持,vscode可以通过插件实现Python Docstring Generator:

  1. 插件管理器搜索Python Docstring Generator安装即可
  2. 使用方法很简单,在函数名后换行快捷键Ctrl+Shift+2即可,或者输入”””敲换行时也会自动添加

该插件默认使用的风格是Google,通过对比一些开源算法库的文档,使用Google风格的比如TensorFlow,PyTorch,其文档的可读性并不如使用numpy风格的NumPy和SciPy,因此建议使用numpy风格。

延伸阅读:

二、python的可扩展性

可扩展性是属于 Python 的其他特性之一。在必要时,可以用其他语言编写 Python 代码的一部分,例如 C++。因此,Python 是一种可扩展的语言,这意味着它可以被扩展到其他语言。Python 可扩展的特性是指 Python 的部分代码可以用 C 或 C++ 来编写。这并不能增强语言 (语法、结构等等),但是它可以让你把 Python 和其他语言开发的库连接起来。这就是说,你可以将以其他语言编写的代码包含在你的 Python 源代码中。

相关文章