- 前言
- 目标读者
- 非目标读者
- 本书的结构
- 以实践为基础
- 硬件
- 杂谈:个人的一点看法
- Python 术语表
- Python 版本表
- 排版约定
- 使用代码示例
- 第一部分 序幕
- 第 1 章 Python 数据模型
- 第二部分 数据结构
- 第 2 章 序列构成的数组
- 第 3 章 字典和集合
- 第 4 章 文本和字节序列
- 第三部分 把函数视作对象
- 第 5 章 一等函数
- 第 6 章 使用一等函数实现设计模式
- 第 7 章 函数装饰器和闭包
- 第四部分 面向对象惯用法
- 第 8 章 对象引用、可变性和垃圾回收
- 第 9 章 符合 Python 风格的对象
- 第 10 章 序列的修改、散列和切片
- 第 11 章 接口:从协议到抽象基类
- 第 12 章 继承的优缺点
- 第 13 章 正确重载运算符
- 第五部分 控制流程
- 第 14 章 可迭代的对象、迭代器和生成器
- 14.1 Sentence 类第1版:单词序列
- 14.2 可迭代的对象与迭代器的对比
- 14.3 Sentence 类第2版:典型的迭代器
- 14.4 Sentence 类第3版:生成器函数
- 14.5 Sentence 类第4版:惰性实现
- 14.6 Sentence 类第5版:生成器表达式
- 14.7 何时使用生成器表达式
- 14.8 另一个示例:等差数列生成器
- 14.9 标准库中的生成器函数
- 14.10 Python 3.3 中新出现的句法:yield from
- 14.11 可迭代的归约函数
- 14.12 深入分析 iter 函数
- 14.13 案例分析:在数据库转换工具中使用生成器
- 14.14 把生成器当成协程
- 14.15 本章小结
- 14.16 延伸阅读
- 第 15 章 上下文管理器和 else 块
- 第 16 章 协程
- 第 17 章 使用期物处理并发
- 第 18 章 使用 asyncio 包处理并发
- 第六部分 元编程
- 第 19 章 动态属性和特性
- 第 20 章 属性描述符
- 第 21 章 类元编程
- 结语
- 延伸阅读
- 附录 A 辅助脚本
- Python 术语表
- 作者简介
- 关于封面
延伸阅读
在本书的最后,我要介绍一些“Python 风格”的参考资料——这正是本书尝试解决的主要问题。
Brandon Rhodes 是位出色的 Python 教师,他的演讲“A Python Æsthetic: Beauty and Why I Python”很精彩,从标题中使用的 Unicode 字符 U+00C6(拉丁语大写字母 AE)开始谈起。另一位出色的教师 Raymond Hettinger,在 2013 年的 PyCon US 大会上谈了 Python 之美:“Transforming Code into Beautiful, Idiomatic Python”。
Ian Lee 在 Python-ideas 邮件列表中发起的“Evolution of Style Guides”话题值得一读。Lee 是 pep8 包的维护者,这个包的作用是检查 Python 代码是否符合 PEP 8。检查书中的代码时,我用的是 flake8(https://pypi.python.org/pypi/flake8),这个包融合了 pep8、pyflakes(https://pypi.python.org/pypi/pyflakes)和 Ned Batchelder 开发的 McCabe 复杂度插件。
除了 PEP 8,Google 的 Python 风格指南和 Pocoo 风格指南也有很大的影响。Pocoo 团队为我们开发了 Flask、Sphinx、Jinja 2 和其他优秀的 Python 库。
The Hitchhiker's Guide to Python! 由多人维护,说明如何编写符号 Python 风格的代码。为这个项目贡献最多内容的是 Kenneth Reitz,他因开发特别符合 Python 风格的 requests 包而被社区视为英雄。David Goodger 在 2008 年举办的 PyCon US 大会上办了一场教学活动,题为“Code Like a Pythonista: Idiomatic Python”。如果打印出来,这个教程的教案有 30 页。当然,教案的 reStructuredText 源码能下载到,可以使用 docutils 将其渲染成 HTML 和 S5 幻灯片。毕竟,reStructuredText 和 docutils 都是 Goodger 的作品。这两个工具是 Sphinx 的基础。Sphinx 是优秀的 Python 文档系统,顺便提一下,MongoDB 和很多其他项目的官方文档系统都是 Sphinx。
Martijn Faassen 直接回答了“什么是 Python 风格”这个问题,python-list 邮件列表中也有一个相同标题的话题。Martijn 的文章是 2005 年写的,那个话题是 2003 年讨论的,不过 Python 风格的思想没怎么变化,Python 语言本身也是如此。“Pythonic way to sum n-th list element?”话题对 Python 风格做了深入讨论,我在第 10 章的“杂谈”中有大量引用。
“PEP 3099 — Things that will Not Change in Python 3000”解释了经过 Python 3 大幅度的调整之后,为何许多东西仍是现在的样子。长久以来,Python 3 有个昵称——Python 3000,不过诞生时间早了几个世纪,这让一些人失望。PEP 3099 的作者是 Georg Brandl,他收集了仁慈的独裁者(即 Guido van Rossum)的很多观点。Python Essays 页面列出了很多 Guido 自己写的文章。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论