优雅的Python?
我正在自学Python,发现我真正学会东西的唯一方法就是阅读实际的程序。教程和手册让我感到非常困惑。
这只是我的学习风格,我在学习任何东西时都是这样(包括自然语言——我通过直接参与其中,成功自学了三种语言)。
古典音乐曾经有一个“音域”的概念——以艺术的方式演奏乐器的整个音域。我猜可能有一些写得很好的脚本,能够展示这个语言的每一个特性。它们做什么并不重要,我只是想通过阅读程序本身来开始学习Python。
我记得几年前在学习LISP时遇到过类似的方法。那是一本由Springer Verlag出版的书,里面全是人工智能程序,目的是为了让人们从中学习。
2 个回答
我同意亚历克斯的看法。
标准库是一个很好的学习资源。
正如有人曾经提到的,doctest模块是个“值得一读”的东西:
http://svn.python.org/projects/sandbox/trunk/setuptools/doctest.py
我建议你研究一下标准的Python库(也就是用Python编写的部分)——虽然它的优雅程度不一定都很高,但它确实设定了一个很高的标准。而且,学习这个库还有一个额外的好处,就是让你对这个库非常熟悉(这是掌握Python的一个绝对关键的部分),同时也能让你看到很多不错到优秀的Python代码风格;-)。
补充说明:我得指出(否则我的妻子兼合著者安娜会威胁我不做我看到的美味牛排;-)),《Python Cookbook》第2版也有很多代码示例,都是我们能做到的最佳风格,并且详细讨论了风格的变化和替代方案。不过,这本书的内容停留在Python 2.4的时代(抱歉,现在没时间出第三版...),这对一些人来说是个真正的障碍(虽然我认为,学会了好的Python 2.4风格后,转到好的2.7或3.1风格其实只是个“渐进”的过程,这只是我个人的看法)。我得声明一下我的利益:如果你买了这本书,安娜和我会得到一些版税,更重要的是,Python软件基金会(对我们俩都非常重要——我们的普锐斯车牌上写着“P♥THON”...!-)会得到更多的收益——所以显然我们对这本书是有偏见的;-)。如果你不想花钱,可以在Google Books上免费阅读这本书的部分内容(O'Reilly会选择哪些部分可以免费阅读,所以请不要向我[[或安娜]]抱怨这些选择...!-)。
我希望我能推荐一下这本Cookbook的在线版,里面有一些非常新的食谱,还有我们从经典旧食谱中挑选出来的大部分印刷版的内容——但不幸的是,很多在线食谱的风格问题太多,无法整体推荐它们作为“好的风格示例”(这也适用于那些好的食谱:我们为书中挑选的大多数食谱也进行了大量编辑,以改善风格(以及可读性和性能,但这通常与Python是相辅相成的)。