这是 Python 之禅特别系列的一部分,重点介绍第十七和十八条原则:困难和容易。
一门语言并不是抽象存在的。每一个语言功能都必须用代码来实现。承诺一些功能是很容易的,但实现起来就会很麻烦。复杂的实现意味着更多潜在的 bug,甚至更糟糕的是,会带来日复一日的维护负担。
对于这个难题,Python 之禅 中有答案。
如果一个实现难以解释,那就是个坏思路If the implementation is hard to explain, it's a bad idea {#ruby%E5%A6%82%E6%9E%9C%E4%B8%80%E4%B8%AA%E5%AE%9E%E7%8E%B0%E9%9A%BE%E4%BB%A5%E8%A7%A3%E9%87%8A%E9%82%A3%E5%B0%B1%E6%98%AF%E4%B8%AA%E5%9D%8F%E6%80%9D%E8%B7%AFrtif-the-implementation-is-hard-to-explain-its-a-bad-ideartruby}
编程语言最重要的是可预测性。有时我们用抽象的编程模型来解释某个结构的语义,而这些模型与实现并不完全对应。然而,最好的释义就是解释该实现。
如果该实现很难解释,那就意味着这条路行不通。
如果一个实现易于解释,那它可能是一个好思路If the implementation is easy to explain, it may be a good idea {#ruby%E5%A6%82%E6%9E%9C%E4%B8%80%E4%B8%AA%E5%AE%9E%E7%8E%B0%E6%98%93%E4%BA%8E%E8%A7%A3%E9%87%8A%E9%82%A3%E5%AE%83%E5%8F%AF%E8%83%BD%E6%98%AF%E4%B8%80%E4%B8%AA%E5%A5%BD%E6%80%9D%E8%B7%AFrtif-the-implementation-is-easy-to-explain-it-may-be-a-good-ideartruby}
仅仅因为某事容易,并不意味着它值得。然而,一旦解释清楚,判断它是否是一个好思路就容易得多。
这也是为什么这个原则的后半部分故意含糊其辞的原因:没有什么可以肯定一定是好的,但总是可以讨论一下。
via: https://opensource.com/article/19/12/zen-python-implementation
作者:Moshe Zadka 选题:lujun9972 译者:wxy 校对:wxy