在你的 Python 代码中优先考虑简洁性

这是关于 Python 之禅的特别系列的第二部分,重点关注第三和第四原则:简洁性和复杂性。
81 位读者喜欢这个。
Person reading a book and digital copy

"Il semble que la perfection soit atteinte non quand il n'y a plus rien à ajouter, mais quand il n'y plus rien à retrancher."



"似乎完美最终不是在没有什么可以添加的时候达到,而是在没有什么可以去除的时候达到。"

—安托万·德·圣-埃克苏佩里,《人类的土地》,1939 年

编程中一个常见的担忧是对复杂性的挣扎。任何程序员都很容易编写出一个程序,使其变得如此复杂,以至于没有专家可以调试或修改它。《Python 之禅》如果不涉及这一点,就不会完整。

简洁胜于复杂。

当有可能选择时,选择简单的解决方案。Python 很少做不允许事情的事情。这意味着设计巴洛克式的程序来解决直接的问题是可能的,甚至是直接的。

值得在每个时刻记住,简洁性是在编写代码时最容易失去也是最难重新获得的东西之一。

这可能意味着选择将某些东西编写为函数,而不是引入不必要的类。这可能意味着避免使用强大的第三方库,而选择编写一个两行函数,该函数非常适合当前的用例。最常见的情况是,这意味着避免预测未来,而专注于解决手头的问题。

以后更改程序要容易得多,特别是如果简洁和美观是其指导原则之一,而不是用所有可能的未来变化来加载代码。

复杂胜于繁琐。

这可能是最被误解的原则,因为理解这些词语的精确含义至关重要。当事物由多个部分组成时,它是复杂的。当事物具有许多不同的,通常难以预测的行为时,它是繁琐的

在解决难题时,通常情况下,没有简单的解决方案。在这种情况下,最符合 Python 风格的策略是“自下而上”。构建简单的工具并将它们组合起来以解决问题。

这就是对象组合等技术发挥作用的地方。与其拥有复杂的继承层次结构,不如拥有将一些方法调用转发到单独对象的对象。这些对象中的每一个都可以单独测试和开发,然后最终组合在一起。

“构建”的另一个例子是使用 singledispatch,这样一来,我们就不再有一个复杂的对象,而是一个简单的、几乎没有行为的对象和单独的行为。

接下来阅读什么
标签
Moshe sitting down, head slightly to the side. His t-shirt has Guardians of the Galaxy silhoutes against a background of sound visualization bars.
自 1998 年以来,Moshe 一直参与 Linux 社区,帮助举办 Linux “安装派对”。自 1999 年以来,他一直在编写 Python 程序,并为核心 Python 解释器做出了贡献。Moshe 从事 DevOps/SRE 工作的时间早于这些术语出现,他非常关心软件可靠性、构建可重复性以及其他此类事情。

评论已关闭。

© . All rights reserved.