[read]Python高手之路


首先说明,我还只是个Python新手,虽然接触Python已经快一年了,但感觉也就是个用Python写脚本的,没有写过实际可用的Python大项目,水平堪忧啊o(╯□╰)o

所以,想提高提高,一方面是读相关书籍系统学习理论知识,然后找个机会做个大点的项目,也许我的Python水平就可以提升了吧?前几天在China-Pub上看到这本书的推荐,于是稍微折腾了一下(主要是在选书上面比较纠结——现在京东和亚马逊的免运费门槛提升了不少,不像之前买一本书就可以免费配送,现在得再选一两本书一起下单才行……)然后早上下订单,晚上到货;刚到货的时候觉得书好薄呀,没有通常意义上讲Python的那种大部头的感觉,然后就觉得书好贵啊,不过看完了之后就感觉——好书值这个价!

==

Python高手之路

https://julien.danjou.info/books/the-hacker-guide-to-python

第1章 项目开始

1.1 Python版本

1.2 项目结构

1.3 版本编号

1.4 编码风格与自动检查

第2章 模块和库

2.1 导入系统

2.2 标准库

2.3 外部库

2.4 框架

2.5 Doug Hellmann访谈

2.6 管理API变化

2.7 Christophe de Vienne访谈

第3章 文档

3.1 Sphinx和reST入门

3.2 Sphinx模块

3.3 扩展Sphinx

第4章 分发

4.1 简史

4.2 使用pbr打包

4.3 Wheel格式

4.4 包的安装

4.5 和世界分享你的成果

4.6 Nick Coghlan访谈

4.7 扩展点

4.7.1 可视化的入口点

4.7.2 使用控制台脚本

4.7.3 使用插件和驱动程序

第5章 虚拟环境
第6章 单元测试

6.1 基础知识

6.2 fixture

6.3 模拟(mocking)

6.4 场景测试

6.5 测试序列与并行

6.6 测试覆盖

6.7 使用虚拟环境和tox

6.8 测试策略

6.9 Robert Collins访谈

第7章 方法和装饰器

7.1 创建装饰器

7.2 Python中方法的运行机制

7.3 静态方法

7.4 类方法

7.5 抽象方法

7.6 混合使用静态方法、类方法和抽象方法

7.7 关于super的真相

第8章 函数式编程

8.1 生成器

8.2 列表解析

8.3 函数式,函数的,函数化

第9章 抽象语法树

9.1 Hy

9.2 Paul Tagliamonte访谈

第10章 性能与优化

10.1 数据结构

10.2 性能分析

10.3 有序列表和二分查找

10.4 namedtuple和slots

10.5 memoization

10.6 PyPy

10.7 通过缓冲区协议实现零复制

10.8 Victor Stinner访谈

第11章 扩展与架构

11.1 多线程笔记

11.2 多进程与多线程

11.3 异步和事件驱动架构

11.4 面向服务架构

第12章 RDBMS和ORM

12.1 用Flask和PostgreSQL流化数据

12.2 Dimitri Fontaine访谈

第13章 Python 3支持策略

13.1 语言和标准库

13.2 外部库

13.3 使用six

第14章 少即是多

14.1 单分发器

14.2 上下文管理器

==

很薄的一本书(202页),分为14章,不过书中给出了构建应用程序时可参考的方法和建议:

从Python版本的选取、项目目录结构的设置以及项目编号的规范性(pep-0440/0426)开始,编码风格的检查(PEP 8规范以及检查工具flake8/hacking),模块和库的说明(任何时候想要自己写函数处理一些简单的工具时,请先停下来看看标准库)(外部库的使用要慎之又慎),以及在正规项目中文档的重要性(Python中文档格式的事实标准是reStructuredText,或简称reST;Sphinx是处理这一格式最常用的工具),针对现阶段Python存在的各种分发工具也有了简明扼要的介绍(简而言之,setuptools是目前分发库的主要选择,但在未来要对distlib保持关注;pip freeze),虚拟环境的设置,特别强调了单元测试的重要性;第7、8、10章是我最感兴趣的章节,第9章(抽象语法树,AST)对现在的我来说基本上就是天书,草草翻阅过;第11、12章因为用的少所以关注的也少,希望以后会有机会用到(GIL;multiprocessing;异步和事件驱动架构);因为现阶段也主要是在Python2.7上进行编程,所以第13章Python3支持策略只是大概了解了下(推荐使用six模块,而不是2to3/3to2这样的工具),第14章的“单分发器”还没怎么看就翻过去了,“上下文管理器”之前有过了解就没细看,不过最后那个’通过一条with语句同时打开两个文件’那个tips还是有点用处。

其实,本书对我的吸引力除了是从作者的实战经验出发为读者提供实践建议和工具之外,最大的收获就是——专家访谈,参与访谈的专家基本上都是Python大牛,分享了他们在进行module开发、API设计、PEP编写时主要考虑的一些问题,真的可以通过其中的访谈从这些专家那里获得意见、建议和技巧。

所以,总体来说,挺棒的一本书,值得购买。

==

with open("file1", "r") as source, open("file2", "w") as destination:
    destination.write(source.read())

PEP(Python Enhancement Proposal,Python增强提案)


《“[read]Python高手之路”》 有 6 条评论

  1. 有没有发现什么翻译上晦涩的地方或者错别字什么的?:) P.S. 我是译者

    • 整体的翻译是非常通顺的;但在4.5小节部分,将”PyPI staging server”翻译成“PyPI预付费服务器”这个我觉得不太合适,不知道有没有更好的表述方法;还有一个应该是出版社的问题——中文版是2015年出的,所以在扉页上的作者简介里面应该是15年从业经验。
      综上,感谢你的翻译,挺好的一本书,我还得继续学习学习才行。

      • PyPI staging server 这个其实应该翻译成预交付或类似的说法,我记不得怎么会用“预付费服务器”这个译法了。多谢你的反馈,这个应该在下一版会被修正。

回复 admin 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注