原标题:为什么 Python 代码要写得美观而明确 | Linux 中国

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

-- Moshe Zadka

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

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

“Hanukkah is the Festival of Lights,

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

—亚当·桑德勒,

美观胜于丑陋

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

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

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

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

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

明确胜于隐晦

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

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

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

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

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

作者: 选题: 译者: 校对:

本文由 原创编译, 荣誉推出返回搜狐,查看更多

责任编辑:

linux 让代码美观,为什么 Python 代码要写得美观而明确 | Linux 中国相关推荐

  1. matlab代码重改python代码,对应函数

    (2021)matlab代码重改python代码,对应函数--全!_Troublemaker丶的博客-CSDN博客

  2. 【Python基础】如何编写简洁美观的Python代码

    作者 | ANIRUDDHA BHANDARI 编译 | VK 来源 | Analytics Vidhya 概述 Python风格教程将使你能够编写整洁漂亮的Python代码 在这个风格教程中学习不同 ...

  3. python代码怎么运行-python代码如何运行

    交互提示模式下编写代码 安装完Python在Windows 或 Linux中的终端中直接输入python即进入Python 交互会话模式. Python 交互模式有以下几个注意点: 1. 只能够输入P ...

  4. python代码怎么运行-python代码是怎样运行的

    python作为一种动态语言,其实是一个解释器软件包.当Python运行脚本时,在代码开始进行处理之前,Python还会执行一些步骤.第一步是编译成所谓的"字节码",如果Pytho ...

  5. python200行代码_200行Python代码实现2048

    200行Python代码实现2048 一.实验说明 1. 环境登录 无需密码自动登录,系统用户名shiyanlou 2. 环境介绍 本实验环境采用带桌面的Ubuntu Linux环境,实验中会用到桌面 ...

  6. python 运行部分代码_改改Python代码,运行速度还能提升6万倍

    如果摩尔定律注定终结,人类的算力会被「锁死」吗?MIT.英伟达.微软研究者合著的一篇 Science 论文告诉我们:不会. 这份最新研究指出,在后摩尔定律时代,人类所获得的的算力提升将更大程度上来源于 ...

  7. python100行代码-100行Python代码自动抢火车票!

    今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool. 先准备好: 1)12306网站用户名和密码 2)chrome浏览器及下载chromedriver 3)下载Python代码,来自网络整理 ...

  8. python画图简单代码-简单画图 - python代码库 - 云代码

    [python]代码库#使用turtle库绘制图形 #画出 NUESOFT #导入turtle库 使用import + 模块名 as 相当于起一个别名 import turtle as t #设置画布 ...

  9. python代码格式-设置Python代码格式

    代码编写风格的重要性: 随着你编写的程序越来越长,有必要了解一些代码格式设置约定.请花时间让你的代码尽可能易于阅读:让代码易于阅读有助于你掌握程序是做什么的,也可以帮助他人理解你编写的代码.为确保所有 ...

最新文章

  1. 研究你为啥看着淘宝想剁手,阿里达摩院论文登上NeurIPS 2019
  2. python软件管理系统_conda:基于python的软件管理系统
  3. java.lang.IllegalStateException: Failed to read Class-Path attribute from manifest of jar file:/XXX
  4. Windows句柄表学习笔记 —— 句柄表全局句柄表
  5. leetcode 高薪_LeetCode刷题实战69:x 的平方根
  6. Qt双击桌面快捷方式激活并使程序窗口置于最前端
  7. 文本显示变量_无代码软件开发文本字符显示设计
  8. nodejs的启动方式
  9. 提高搜索引擎结果页面排名的各种技术
  10. 设计模式14——行为型模式之职责链模式
  11. python日历下拉框_selenium+Python(Js处理日历控件)
  12. 黄聪:WordPress默认编辑器可视化切换不见了,非插件导致消失问题
  13. 《FLUENT 14流场分析自学手册》——1.5 湍流模型
  14. IDEA软件中的五子棋~
  15. C++ 打印机状态查询之SNMP协议
  16. java类库详解_【Java系列-4】Java常用类库_详解
  17. 大白话讲解,大数据基本术语
  18. 抢红包算法 c++_“抠抠族”的出行利器,斤斤计较的几何C为了节能果然够拼
  19. 【读书】2019年阅读记录
  20. ASAM MCD2D 笔记(1) - ODX use cases

热门文章

  1. 算法笔记(0002) - 【贪心算法】活动安排问题
  2. linux现代时间轮算法,linux2.6定时器的时间轮算法分析
  3. 0基础快速入门C语言单片机编程
  4. 快速撤销excel文件的工作表保护
  5. AHCI模式导致系统蓝屏
  6. 重大里程碑!VOLO屠榜CV任务,无需额外数据,首个超越87%的模型
  7. 基于差异演化的寄生樽海鞘群算法
  8. 被骗到香港做传销!(当事人详细回忆)
  9. Global Mapper 导出图层功能的妙用(重采样、设置文件类型、切片、按掩膜提取or裁剪……)
  10. uni-app 系统打印、AirPrint、支持ipad、打印图片 pdf webView文档