如何利用 Python 编写高质量软件?
2026/8/28 19:16:31 网站建设 项目流程

变得正越发受欢迎起来, 成为这样和一种编程语言, 这当中的一切, 当然绝非偶然, 它属于当今最具可读性这样的编程语言之一, 它所拥有的库数量庞大, 同时实用性极强, 对于初学者而言, 它是一种很好的入门语言选项。

不过, 伴随 应用范围迅速增多, 其弊端显现出来了: 不少人借助 编写了大量严谨性不足、没有注释而且难以管理的代码, 此类代码已充斥于互联网每一个角落。实际上, 这些差劲的代码或许引发严重后果, 它们甚至忽视了语言里最基本的要求——风格“准则”。在本文里, 我们会一同发觉、处置这类问题。与此同时, 通过自我检查避免编写出质量欠佳的 代码。

可怕的 代码,到底是怎么一回事?

使我们首先借助一个实例, 瞧瞧什么叫做令人恐惧的代码。针对常见的Fizz - Buzz难题, 我们来查看以下这种解决办法:

再来看另一种解决方案:

我觉得存在着一种区别, 这种区别是能够明显看出来的, 尽管这两者仅仅是在空格这方面存在着不一样的情况, 然而将其与第二种解决办法去进行相比较, 第一种明显是更烦人的哪个。

编写出这套方案的人, 明显觉得if表达式跟范围函数之间绝对不用空格。的确, 解释器能够越过这些空白处。可是人脑不行, 其他人在阅读代码之际, 会因表达式里没使用空格而觉得头晕眼花, 甚至于恶心呕吐!

这只是个小问题,下面再来看看大错误:

相比之下,更好的解决方法应该是:

于此, 我并非仅仅于脚本里增添了空格以及新行, 与此同时还针对导入和数据变量实施了重新命名。

为什么要这么折腾?(一个真实的案例)

大家可能会想:

我何必要为一个小小脚本中的空格、换行符以及变量名费心?

答案挺容易明白, 这些代码并非只为您个人所用, 您有在博客或者其他地方分享代码这种可能, 如此一来这种写法明显说不上专业。其他人会察觉到这般密集的代码读起来特别闹心, 当中所使用的各式非主流导入名称以及毫无意义的变量名称, 同样会让他人产生不解。

就算您有把握只有自己会用到这些代码, 然而过了一段时间再回头去看, 那杂乱的命名方式依旧有可能让您陷入麻烦。下述是现实生活里的一个例子:

一回, 我要去制作一份脚本, 此脚本是用来把 excel 表格从布局 A 转变为布局 B 的, 并且要让其中的值维持不变。这好像是一项蛮简单的工作, 所以我也没多么动脑子, 就随手开始编写代码了。历经几个小时的编写之后, 我发觉这个问题并非像看上去那般简单, 由于任务当中有着接近 8000 份 excel 表格, 所以性能就成了必须得考虑的大前提。这可特别难, 因为我只能依靠自己去解决问题。到截止时间的距离变得越发接近, 处于绝望状况中的我开始着手编写质量欠佳的代码, 变量的名称吗? 随意去进行起取, 函数的名称吗? 跟与之相关的过程完全不存在关联, 最为糟糕的是, 我连注释都未曾书写, 简单来讲, 这些代码变成 1000 行无人能够解开的恐怖谜题, 终于, 我在截止时间来临之前达成了任务, 觉得所有的一切最终圆满完成形成大功成果, 这个糟糕的项目, 不需要进行扩展, 不需要展开导入且不需要进行嵌入操作, 从接下来往后我再也不会去使用它了, 令人感到遗憾的是, 我只是想得过度单单简单, 他们发觉有些表格伴随转换之后, 跟对应的布局 A 并没有较为重大意义的区别。因此,我不得不连续三次对代码进行扩展。

这是一段令人沮丧且极其耗时的经历。希望大家别重蹈我的覆辙。

如何处理糟糕的代码

接着说更极端情形, 有时在项目里要集成一个库或者一组文件, 然而它们编写质量糟糕, 这该咋办呢? 我们自然不愿把这些代码加到项目里, 可是要是真有需要, 我提议大家对代码内容做一番剖析。要是代码数量不多, 那最好从起始点开始再度编撰。但若重写工作量挺大, 接下来我就传授大家几招“清理”制胜技巧, 让整个进程更简便、更迅速。

格式化与注释

在此提示诸位务须先行自这一环节依次着手, 首要之际, 于需求相应之处添入一个空的换行符号, 将不必要的注释予以去除, 借助空格把运算符同值彼此分隔开来诸般等等, 此步骤相当简易, 坚信诸位皆可轻易胜任该处置。

变量名称

倘若大家知晓有可能的值或者角色, 那么便能够对变量进行重新命名了, 对不怎么明晰确定的变量名称, 得慎重对待, 并且最好充分运用自动更正、高级搜索以及替换功能等 IDE 所提供的现成选项, 要是我们连猜测都缺乏把握, 那最好去查看值的函数来源吧,如果不清楚该函数的作用, 那就先参照第 3 点。

函数

我们要知晓函数返回的情形, 以及其能够运用的参数类别。同样地, 我提议大伙在这一步运用IDE。要是各位对IDE极为抵触, 也能够借助模块来对命令行实施自动更新、函数参数查验以及别的处理。另外, 务必要保证函数名称的更改明晰且恰当, 在有必要时最好把那些一次性函数删掉。最后, 留意检查代码库里函数的使用之处。

如何利用 编写良好代码

一般来讲, 于其中编排出优美并且可读的代码并不算是很难做到的事, 然而偶然间我们或许会需要提升速度, 又或者觉得代码仅需要应用一回。不管怎样, 请记着, 在此种情形下编写出来的代码仅有两种结局——要么被全然去除, 要么被过后重新编写。

一旦进行重写, 所耗费的不光是数量众多的时间, 与此同时还会导致精力出现浪费, 需要全面充分地去运用 的功能。

显然, 在语言设计方面, 就已充分顾及开发者对代码整洁与优雅的需求, 这造就了 的独特优势。接下来, 我会向大家呈现 中的若干出色功能, 其能助各位构建更加优质、更为清晰的代码。留意, 这份清单并不完备, 仅作您参考之用。

参数传递

于别的诸多编程语言里, 当去调用拥有大量参数的函数之际, 我们常常处在全然知晓的状态, 缘由为何呢, 是因为没法瞧出这些参数究竟是依据怎样的顺序来排列的。虽则函数的定义能够将问题予以解决, 然而有时候我们压根就没办法去到这个定义那里。接下来便请看:

我们在调用 foo 的时候, 不能仅仅凭借参数的值来给它命名, 因为参数的值是由参数的顺序来决定的。处于这种情形之下, 所有人都要去找到那个函数的定义, 进而查看参数的确切位置。这说不定要花费一点儿时间。

给出了一种解决办法, 使得人们能够以任意的次序去调用具备参数名称以及其值的函数, 并且不需要按照严格的顺序来运用参数值, 如下所示。

这样会使得编程的进程变得更快, 变得更干净, 可以更安全。读者能够明白第二项参数究竟是什么, 所以导致弄乱函数调用顺序的可能性也会显著降低。

迭代器

要是摆在我们面前是这么个任务, 存在一个叫做 names 的数组, 借助相应的索引号刊印其中各自的名称。大伙能够依照如下方式予以解决:

但更具 风格的解决办法应该是:

这里对于迭代器的解释显然更为明确。

总结

去编写软件, 这要求咱们得做出那种具有前瞻性的思考而且要充分地去理解其他任何代码读者的感受。它是一种容易上手的语言, 能够迅速地达成代码的共享以及脚本的编写。然而, 咱们得将代码读者的需求给考虑进去——这代码读者有可能是同事, 有可能是朋友, 还有可能是几天后的自己。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询