欢迎阅读“Python 光明节(Pythonukkah)”系列文章,这个系列文章将会讨论《Python 之禅》。我们首先来看《Python 之禅》里的前两个原则:美观与明确。

早在 1999 年,Python 的贡献者之一,Tim Peters 就提出了《Python 之禅》,直到二十年后的今天,《Python 之禅》中的 19 条原则仍然对整个社区都产生着深远的影响。为此,就像庆典光明的光明节Hanukkah一样,我们举行了这一次的“Python 光明节Pythonukkah”。首先,我们会讨论《Python 之禅》中的前两个原则:美观和明确。

“Hanukkah is the Festival of Lights,

Instead of one day of presents, we get eight crazy nights.”

—亚当·桑德勒,光明节之歌

美观胜于丑陋

著名的《计算机程序的构造和解释Structure and Interpretation of Computer Programs》中有这么一句话:代码是写给人看的,只是恰好能让机器运行。Programs must be written for people to read and only incidentally for machines to execute.机器并不在乎代码的美观性,但人类在乎。

阅读美观的代码对人们来说是一种享受,这就要求在整套代码中保持一致的风格。使用诸如 Black、flake8、Pylint 这一类工具能够有效地接近这一个目标。

但实际上,只有人类自己才知道什么才是真正的美观。因此,代码审查和协同开发是其中的不二法门,同时,在开发过程中倾听别人的意见也是必不可少的。

最后,个人的主观能动性也很重要,否则一切工具和流程都会变得毫无意义。只有意识到美观的重要性,才能主动编写出美观的代码。

这就是为什么美观在众多原则当中排到了首位,它让“美”成为了 Python 社区的一种价值。如果有人要问,”我们真的在乎美吗?“社区会以代码给出肯定的答案。

明确胜于隐晦

人类会欢庆光明、惧怕黑暗,那是因为光能够让我们看到难以看清的事物。同样地,尽管有些时候我们会不自觉地把代码写得含糊不清,但明确地编写代码确实能够让我们理解很多抽象的概念。

“为什么类方法中要将 self 显式指定为第一个参数?”

这个问题已经是老生常谈了,但网络上很多流传已久的回答都是不准确的。在编写元类metaclass时,显式指定 self 参数就显得毫无意义。如果你没有编写过元类,希望你可以尝试一下,这是很多 Python 程序员的必经之路。

显式指定 self 参数的原因并不是 Python 的设计者不想将这样的元类视为“默认”元类,而是因为第一个参数必须是显式的。

即使 Python 中确实允许非显式的情况存在(例如上下文变量),但我们还是应该提出疑问:某个东西是不是有存在的必要呢?如果非显式地传递参数会不会出现问题呢?有些时候,由于种种原因,这是会有问题的。总之,在写代码时一旦能够优先考虑到明确性,至少意味着能对不明确的地方提出疑问并对结果作出有效的估计。

【责任编辑:庞桂玉 TEL:(010)68476606】

点赞 0

python为什么那么好看_为什么Python代码要写得美观而明确相关推荐

  1. linux 让代码美观,为什么 Python 代码要写得美观而明确 | Linux 中国

    原标题:为什么 Python 代码要写得美观而明确 | Linux 中国 欢迎阅读"Python 光明节(Pythonukkah)"系列文章,这个系列文章将会讨论<Pytho ...

  2. 为什么 Python 代码要写得美观而明确

    为什么 Python 代码要写得美观而明确 美观胜于丑陋 明确胜于隐晦 欢迎阅读 Python 代码之美观 首先来看<Python 之禅>里的前两个原则:美观与明确. 早在 1999 年, ...

  3. python什么字体好看_七个不一样的Python代码写法,让你写出一手漂亮的代码

    原标题:七个不一样的Python代码写法,让你写出一手漂亮的代码 Python语言这么火,有很多同学是从其他语言转行过来的(比如c++,java语言),多多少少写代码的时候也会受其他语言的影响!而对于 ...

  4. python基础教程微信_用Python实现让微信地球转起来附代码!

    微信地球 手机重启后打开微信的一瞬间,会看到一幅有名的图片. 大概是站在月亮上看地球的效果. 你有没有想过,如果上面那个地球转起来会是怎样? 素材 这里有两个表面素材,一个是地球表面素材,一个是云图素 ...

  5. python 预编译加速_让Python代码运行更快的最佳方式

    Python因其强大.灵活且易于使用等特性,而赢得了声誉.这些优点使其在各种各样的应用程序.工作流程和领域中得到了广泛应用.但是就语言的设计,也就是它天然的解释能力还有它的运行时的动态性而言,Pyth ...

  6. python送心小人_使用Python画出小人发射爱心的代码

    我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) ...

  7. python包裹和运费_这个Python库真的太好用了,10行代码就能轻松搞定目标检测

    目标检测是指计算机和软件系统对图像或场景中的目标进行定位和识别的任务. 目标检测已广泛应用于人脸检测.车辆检测.人流量统计.网络图像.安防系统和无人驾驶等多个领域. 早期目标检测的实现基于经典算法,比 ...

  8. python小人画爱心_使用Python画出小人发射爱心的代码

    我就废话不多说了,直接上代码吧! #2.14 from turtle import * from time import sleep def go_to(x, y): up() goto(x, y) ...

  9. python美观代码_为何 Python 代码要写得美观而明确

    欢迎阅读"Python 光明节(Pythonukkah)"系列文章,这个系列文章将会讨论<Python 之禅>.咱们首先来看<Python 之禅>里的前两个 ...

最新文章

  1. 好程序员大数据笔记之:Hadoop集群搭建
  2. Property #39;sqlSessionFactory#39; or #39;sqlSessionTemplate#39; are required
  3. sqlite3.h:没有那个文件或目录
  4. cookie封装做免输入登录
  5. rust最低什么显卡能游戏_Steam游戏音轨终于能单独买 游戏显卡铭瑄值得选
  6. html5 在新标签页打开,Chrome,Javascript,window。在新标签页中打开
  7. ioc中最基本的JAVA技术_Spring IOC 知识点总结
  8. Oracle 数据脱敏
  9. DOS批处理高级教程
  10. AR路由器ETH端口使用方法
  11. 在本地电脑运行vue-element-admin
  12. vue中使用防抖和截流
  13. 正在解析主机/打开网页慢,有可能是你的虚拟机网卡的问题
  14. python算法问题_算法重心问题树(Python),的
  15. 东华大学计算机学院迎新晚会,第五届东华大学研究生才艺之星暨校研会迎新晚会圆满结束...
  16. JAVA 语言程序设计与数据结构 教材课本源码 和 课后习题答案
  17. Ubuntu20.04 floodlight安装教程
  18. springboot 整合Swagger及美化
  19. 杉岩数据对象存储替换IBM FileNet,突破性能瓶颈
  20. MAC电脑 查看APK文件的包名

热门文章

  1. 暗夜精灵6-ubuntu18.04-显卡驱动
  2. 揭秘:特步集团副总裁肖利华的亲笔签名感言
  3. 评论留言用html怎么做,利用JS实现评论留言发布表单代码
  4. shell接受键盘输入参数
  5. 毕业设计之 --- 基于jsp的高校网上订餐系统设计与实现
  6. canvas 绘制圆弧
  7. 使用pgAdmin对Postgresql数据库导入导出
  8. php 框架注解,laravel框架常用的注解
  9. fis3 的安装过程
  10. CAD转PDF怎么变成彩色?需要注意这个小细节