养成写Python代码的9个编程好习惯,提前设计与代码注释很关键
培养良好的编程习惯极为关键!以Python编程为例,我归纳了以下九项优秀的编程习惯。

1. 提前设计
写代码和写作文一样,需要有大纲,不然很容易变成"屎山"。
在着手实践之前,仔细梳理业务逻辑和代码执行流程至关重要,这一环节往往需要投入超过一半的时间。
有些程序员洋洋洒洒地编写了数万行代码,反复修改,bug频出,却误以为自己正忙于工作。然而,这一切都是由于思考不够深入所导致的,进而使得工作效率低下。
提前设计也有方法可循。
例如,运用xwind等绘图工具绘制流程图,明确每个模块应承担的功能,接着编写伪代码以提取关键逻辑,并对每个测试环节进行精心规划。
2. 代码注释
代码注释相当于产品说明书,太重要了。
代码注释既是给自己看的,更是给别人看的。因为代码需要维护。
若接替你的人难以读懂你所编写的代码,这很可能是因为代码本身质量不高,亦或是注释不够清晰明了。
写代码注释需要注意以下几点原则:
Python代码注释规范:
Python通过文档字符串进行说明,其注释形式采用三个连续的双引号,即""" """。
文档字符串是封装在包、模块、类或函数内部的初始声明。此类字符串能够被系统自动检索,并借助对象的`__doc__`属性进行提取,同时被pydoc工具所引用。
当然如果你足够优秀,也可以让代码自己解释自己。
代码的注释并非越多越好,实际上,优秀的代码本身就是最好的说明。我们应当努力使代码规范化、美观化,以此降低对注释的依赖。若编程工具具备强大的表达能力,那么注释就变得不那么必要了,我们应尽可能通过代码本身来传达意图。此外,规范命名也是提升代码可读性的关键。
程序员在给事物命名时常常感到困扰,众多代码因命名不规范而使得可读性极差。
曾有一份调研报告,针对“程序员最烦恼的问题”进行了评选,其中一项名为“命名问题”的选项高居榜首,其得票率高达49%。
变量、函数以及类等命名应遵循“直观明了”的原则,即其名称需准确反映其代表的内容,使得读者能够迅速理解其含义。
要想代码足够有表达力,良好且一致性的命名规范是必不可少的。
Python命名规范需要注意以下几点:
(1)模块推荐使用小写命名,
(2)除非有很多字母,尽量不要用下划线
由于众多模块文件存储的类名与模块名相同,而模块命名遵循小写规则,类名则采用首字母大写的形式,因此我们可以通过这种方式来明确地区分模块与类。
类名的命名应遵循驼峰式(CamelCase)规范,并且每个单词的首字母都要大写。
(2)私有类可用一个下划线开头。
(1)函数名一律小写,如有多个单词,用下划线隔开
内部函数的命名规范要求以单个下划线作为前缀,此类函数允许被继承并访问。
(1)变量名推荐小写,如有多个单词,用下划线隔开
在类内部进行变量命名时,应采用单下划线(_)作为前缀(这样的变量可以被继承后访问)。
在类内部定义的私有变量,其命名应以双下划线(__)作为前缀,这样的变量将无法被继承,从而保证其访问权限受限。
常量名称应采用全大写字母,并且每个单词之间用下划线分隔,例如:MAX_OVERFLOW、TOTAL。
全小写,可使用下划线
4. 保持代码美观
Python要求代码必须遵循严格的缩进规范,这确保了代码的整洁性,然而,我们在追求整洁的同时,也不能忽视对细节的关注。
《代码整洁之道》一书中提到,要保持代码的整洁性,关键在于专注于一件事,特别是在函数的设计上。
所以,少即是多。
Python之禅可以很好地解释什么是美观地代码。
优美胜于丑陋(Python 以编写优美的代码为目标)
明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)
简洁优于繁复,优秀的代码应是简洁的,避免内部实现过于复杂。
复杂程度高于杂乱无章(若复杂性难以避免,代码之间的联系也应尽量清晰,确保接口的简洁性。)
扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)
间隔优于紧密排列(优秀的代码应当包含适当的空白,切勿寄望于单行代码便能解决所有问题)。
可读性很重要(优美的代码是可读的)
即便以特例的实用性为借口,亦不可触犯这些至高无上的规则。
不应接纳所有失误,除非你确信有必要这么做(需精确捕捉异常,避免编写类似“except:pass”的代码)。
当存在多种可能,不要尝试去猜测
寻求一种方案,理想状态下是唯一的、显著的解决方案,若无法确定,则采用穷举的方法。
尽管这并非易事,鉴于您并非 Python 的创始人(此处所指的 Dutch 指的是 Guido)。
尝试或许比完全不行动来得更有益,然而,未经深思熟虑便行动,不如干脆不行动(在行动前务必深思熟虑)。
若你没法向他人清晰阐述你的计划,那么这计划很可能并不完善;同理,若你的计划本身质量不高,你也难以用语言准确表达出来(这是评估计划的准则)。
命名空间是一种卓越的构思,我们理应大力推广并积极倡导,以促进5. 完善的README文档的编制。
若你曾接触过GitHub,必然对README有所了解,它就像一份项目指南,能助你更好地把握该项目的相关信息。
README文件的主要功能在于向人们阐述为何该使用你的项目,并指导他们如何进行安装与操作。一份规范的README文档能显著降低其构建与维护的难度,因此,投入时间精心打造README文件是值得的。
完成 README 文件后,要记得随着项目的进展同步更新它,这样做虽不费时,却能确保你始终对项目全局有清晰的认识。此方法值得一试。
6. 模块化
模块化指的是将复杂且冗长的程序代码依照既定准则,划分为若干个独立的部分(这些部分可能采用面向对象的形式)或单独的文件,随后再将这些部分或文件整合起来,以实现所需的功能和达到预期的效果。
模块化设计使得代码能在不同项目间重复利用,无需从头编写,这就像汽车制造中的模块化生产,无论是底盘还是电气系统,只需稍作调整外观和内部装饰,便能打造出多种车型。
Python拥有丰富的模块库,这表现在其标准库中收录了众多模块,即所谓的标准模块,同时还有众多第三方模块可供选择。此外,开发者还能自主创建个性化的模块。借助这些功能强大的模块,开发者的工作效率能够得到显著提升。
7. 版本控制
项目参与人数持续上升,有时由于疏忽导致严重失误,不得不回溯至过往版本。若您的失误影响多个代码文件,其中部分文件可能自数天或数月前就已改动,此时版本控制系统的作用便显得尤为关键。
Git在众多版本控制工具中备受青睐,拥有丰富的网络教程资源。借助Git,用户可按需保留大量修订记录,对代码进行分支实验,监控特定代码段的变更,且能随时回到之前的版本。
8. 注意备份
备份不用多说了,防止突发情况,这个很重要!
9. 多看官方文档
无论采用何种编程语言,官方发布的文档始终是学习过程中的上佳指南,其中包含了最新且最为详尽的代码解释。
Python亦是如此,尽管市面上教程种类繁多,官方指南却不可或缺。
现在既有英文也有中文版,非常方便。
docs.python.org/zh-cn/3/