第1章 为什么要学Python (2)

如果说优雅迷人还有些主观的成份,毕竟每个人心中的女神可能不尽相同。但很少会有人不承认Python的简洁高效。“人生苦短,我用Python”不仅是一句口号,也是Python程序开发高效率的一个真实写照。

与其它开发语言相比,实现同样的功能,在不借助于函数库的前提下,Python代码始终是最简单、最易读的。如果在C、Java和Python三者间进行比较的话,Java是代码量最大的语言,要比C语言长1.5倍,而比Python则长3~4倍。我们以输出一个数组的元素为例来体验一下:

仅看定义和输出数组元素值的那部分。两种语言都需要三行代码,但是Python的代码明显更短,更不要说Python还有所谓的“pythonic”的写法:

当然这么写还是有争议的,对一些人来说,它牺牲了可读性。

我们再看一个变量交换的例子:

Python的语法显然更简单,它就象我们每天使用的自然语言一样,似乎不借助任何复杂的技巧、甚至不需要懂所谓的编程知识,就能够实现这些功能。C和Java虽然也都能不借助第三个变量,实现一行代码完成变量的值交换,但这样的代码需要一定的技巧,因而容易出错。

简洁(但不需要借助于复杂的技巧)的代码显然更加容易阅读和理解,从而大大加快了开发的速度。的确,在这个信息过载的时代,简洁越来越显示出强大的力量:json取代xml成为更多人传递数据的工具;Markdown则取代了Html、reStructuredText和Word成为我们的文档格式。

删繁就简三秋树,标新立异二月花。繁琐、夸张的巴洛克艺术,无论其多么精致、多么吸引眼球,都无法在这个高度内卷的年代逃脱批判。我们需要那些能够成为我们直觉的工具、符号和思想,以便让我们能够快速响应这日益复杂的世界。

巴洛克风格的波尔图教堂,极尽精致繁复之美

简单即是美。这种哲学思想大致起源于奥卡姆。达芬奇也有类似的思想:“简单是极致的精巧”,尽管精巧才是那个时代的审美。如果你对这些思想感兴趣,可以阅读John Maeda 撰写的书籍《The Laws of Simplicity》。

语言的简洁、优美在Python中的地位是如此重要,以至于它被写进了Python“宪章”——PEP20:

Beautiful is better than ugly.

优美胜于丑陋

Explicit is better than implicit.

明了胜于晦涩

Simple is better than complex.

简单优于复杂

Complex is better than complicated.

复杂优于凌乱

Flat is better than nested.

扁平好过嵌套

Sparse is better than dense.

稀疏强于稠密

Readability counts.

可读性很重要!

Special cases aren't special enough to break the rules.

特例亦不可违背原则

Although practicality beats purity.

即使实用战胜了纯粹

Errors should never pass silently.

错误绝不能悄悄忽略

Unless explicitly silenced.

除非我们确定需要如此

In the face of ambiguity, refuse the temptation to guess.

面对不确定性,拒绝妄加猜测

There should be one -- and preferably only one -- obvious way to do it.

永远都应该只有一种显而易见的解决之道

Although that way may not be obvious at first unless you're Dutch.

即便解决之道起初看起来并不显而易见

Now is better than never.

做总比不做强

Although never is often better than *right* now.

然而不假思索还不如不做

If the implementation is hard to explain, it's a bad idea.

难以名状的,必然是坏的

If the implementation is easy to explain, it may be a good idea.

易以言传的,可能是好的

Namespaces are one honking great idea -- let's do more of those!

名字空间是个绝妙的主意,请好好使用!


这段文字甚至还以彩蛋的方式出现。如果执行以下的命令:

就会输出上面的文字。任何时候,如果我需要引用《Zen of Python》,我都会使用这个方法。

PEP20还藏着另一个彩蛋。我们说它应该有20条规则,但实际上我们只能看到19条,这是为什么呢?

展开阅读全文

页面更新:2024-04-15

标签:巴洛克   彩蛋   可读性   数组   变量   简洁   语言   思想   代码   简单

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top