全国旗舰校区

不同学习城市 同样授课品质

北京

深圳

上海

广州

郑州

大连

武汉

成都

西安

杭州

青岛

重庆

长沙

哈尔滨

南京

太原

沈阳

合肥

贵阳

济南

下一个校区
就在你家门口
+
当前位置:首页  >  技术干货

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

发布时间:2023-10-11 19:02:26
发布人:xqq

一、为什么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

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

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

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

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

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

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

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

{

    “editor.codeActionsOnSave”: {

        “source.organizeImports”: true

    },

    “python.sortImports.args”: [

        “–force-sort-within-sections”,

        “–force-single-line-imports”

    ],

}

4 注释

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

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

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

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

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

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

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

延伸阅读:

二、python的可扩展性

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

#it技术干货

相关文章

为什么要有U-Boot?

为什么要有U-Boot?

2023-10-11
Java开发需要什么样的电脑配置?

Java开发需要什么样的电脑配置?

2023-10-11
WEB服务器是什么?

WEB服务器是什么?

2023-10-11
什么是IDE,IDE有什么用?

什么是IDE,IDE有什么用?

2023-10-11

最新文章

常见网络安全面试题:Windows常用的命令有哪些?

常见网络安全面试题:Windows常用的命令有哪些?

2023-10-09
常见网络安全面试题:根据设备告警如何展开排查?

常见网络安全面试题:根据设备告警如何展开排查?

2023-10-09
常见网络安全面试题:mysql加固呢?(数据库加固)

常见网络安全面试题:mysql加固呢?(数据库加固)

2023-10-09
常见网络安全面试题:windows和linux加固?(操作系统加固)

常见网络安全面试题:windows和linux加固?(操作系统加固)

2023-10-09
在线咨询 免费试学 教程领取