Python的贡献者Tim Peters在1999年向我们介绍了Python的Zen 。二十年后,它的19条指导原则在社区中仍然很重要。 我们以Python禅中的前两个原则开始我们的Pythonukkah庆祝活动(例如光明节,即光明节):关于美和外在。
“光明节是灯节,
我们得到了八个疯狂的夜晚,而不是礼物的一天。”
—亚当·桑德勒(Adam Sandler), 《光明节之歌》
美丽胜于丑陋。
正是在《计算机程序的结构和解释》 ( SICP )中指出了这一点:“必须编写程序供人们阅读,而只能偶然地使机器执行。” 机器不在乎美丽,但人们却在乎。
精美的程序是一种令人愉悦的程序。 这首先意味着它是一致的。 像工具黑色 , flake8和pylint的是伟大的,确保事情的表面层上合理。
但更重要的是,只有人类才能判断人类发现什么美丽。 代码审查和协作编写代码的方法是构建漂亮代码的唯一现实方法。 倾听他人是软件开发中的一项重要技能。
最后,如果没有意愿 ,所有的工具和过程都没有意义。 如果不欣赏美的重要性,就永远不会强调编写美的代码。
这就是为什么这是第一个原则的原因:这是在Python社区中使“美”成为价值的一种方式。 它立即回答:“我们真的在乎美丽吗?” 我们的确是。
显式胜于隐式。
我们人类庆祝光明,惧怕黑暗。 光线可以帮助我们理解模糊的图像。 同样,更明确的编程有助于我们理解抽象概念。 使事物隐含通常很诱人。
明确地将自身作为方法的第一个参数?”技术上有很多解释,但都是错误的。 编写几乎不需要列出自身的元类几乎是Python程序员的一种习惯。 (如果您以前从未做过,请这样做;它是一个很棒的元类学习练习!)
self是显式的原因不是因为Python核心开发人员不想创建像“默认”元类那样的元类。 之所以明确,是因为没有什么特别的情况要教:第一个论点是明确的 。
即使Python允许使用非显式的内容(例如上下文变量),我们也必须始终问:确定要使用它们吗? 我们不能只是显式地传递参数吗? 有时,由于多种原因,这是不可行的。 但是优先考虑明确性至少意味着要提出问题并估算工作量。
翻译自: https://opensource.com/article/19/12/zen-python-beauty-clarity