- Preface 前言
- 第1章 引论
- 第2章 编程惯用法
- 第3章 基础语法
- 建议19:有节制地使用 from…import 语句
- 建议20:优先使用 absolute import 来导入模块
- 建议21:i+=1 不等于 ++i
- 建议22:使用 with 自动关闭资源
- 建议23:使用 else 子句简化循环(异常处理)
- 建议24:遵循异常处理的几点基本原则
- 建议25:避免 finally 中可能发生的陷阱
- 建议26:深入理解 None 正确判断对象是否为空
- 建议27:连接字符串应优先使用 join 而不是 +
- 建议28:格式化字符串时尽量使用 .format 方式而不是 %
- 建议29:区别对待可变对象和不可变对象
- 建议30:[]、() 和 {}:一致的容器初始化形式
- 建议31:记住函数传参既不是传值也不是传引用
- 建议32:警惕默认参数潜在的问题
- 建议33:慎用变长参数
- 建议34:深入理解 str() 和 repr() 的区别
- 建议35:分清 staticmethod 和 classmethod 的适用场景
- 第4章 库
- 建议36:掌握字符串的基本用法
- 建议37:按需选择 sort() 或者 sorted()
- 建议38:使用 copy 模块深拷贝对象
- 建议39:使用 Counter 进行计数统计
- 建议40:深入掌握 ConfigParser
- 建议41:使用 argparse 处理命令行参数
- 建议42:使用 pandas 处理大型 CSV 文件
- 建议43:一般情况使用 ElementTree 解析 XML
- 建议44:理解模块 pickle 优劣
- 建议45:序列化的另一个不错的选择 JSON
- 建议46:使用 traceback 获取栈信息
- 建议47:使用 logging 记录日志信息
- 建议48:使用 threading 模块编写多线程程序
- 建议49:使用 Queue 使多线程编程更安全
- 第5章 设计模式
- 第6章 内部机制
- 建议54:理解 built-in objects
- 建议55:init() 不是构造方法
- 建议56:理解名字查找机制
- 建议57:为什么需要 self 参数
- 建议58:理解 MRO 与多继承
- 建议59:理解描述符机制
- 建议60:区别 getattr() 和 getattribute() 方法
- 建议61:使用更为安全的 property
- 建议62:掌握 metaclass
- 建议63:熟悉 Python 对象协议
- 建议64:利用操作符重载实现中缀语法
- 建议65:熟悉 Python 的迭代器协议
- 建议66:熟悉 Python 的生成器
- 建议67:基于生成器的协程及 greenlet
- 建议68:理解 GIL 的局限性
- 建议69:对象的管理与垃圾回收
- 第7章 使用工具辅助项目开发
- 第8章 性能剖析与优化
Preface 前言
为什么要写这本书
当这本书的写作接近尾声的时候,回过头来看看这一年多的写作历程,不由得心生感叹,这是一个痛并快乐着的过程。不必说牺牲了多少个周末,也不必计算多少个夜晚伏案写作,单是克服写作过程中因疲劳而迸发出来的彷徨、犹豫和动摇等情绪都觉得是件不容易的事情。但不管怎么说,这最终是个沉淀和收获的过程,写作的同时我也和读者们一样在进步。为什么要写这本书?可以说是机缘巧合。
机械工业出版社的杨福川老师联系到我,说他们打算策划一本关于高质量 Python 编程方面的书籍,问我有没有兴趣加入。实话实说,最开始我是持否定态度的,一则因为业余时间实在有限,无法保证我“工作和生活要平衡”的理念;二则觉得自己水平有限,在学习 Python 的道路上我和千千万万读者一样,只是一个普通的“朝圣者”,我也有迷惑不解的时候,在没有修炼到大彻大悟之前拿什么来给人传道授业?是赖勇浩老师的加入给我注入了一针强心剂,他丰富的 Python 项目经验以及长期活跃于 Python 社区所积累下来的名望无形中给了我一份信心。
杨老师的鼓励和支持也更加坚定了我的态度,经过反复考虑和调整自己的心态,最终我决定和赖老师一起完成这本书。因为我也经历过从零开始的 Python 学习过程,我也遇到过各种困惑,经历过不同的曲折,这些可能也正是每一个学习 Python 的人从最初到进阶这一过程中都会遇到的问题。抱着分享自己在学习和工作中所积累的一点微薄经验的心态,我开始了本书的写作之旅。这个过程也被我当作是对自己学过的知识的一种梳理。如果与此同时,还能够给读者带来一些启示和思索,那将是这本书所能带给我的最大收获了。
读者对象
- 有一定的 Python 基础,希望通过项目最佳实践来提升自己的相关 Python 人员。
- 希望进一步掌握 Python 相关内部机制的技术人员。
- 希望写出更高质量、更 Pythonic 代码的编程人员。
- 开设相关课程的大专院校师生。
如何阅读本书
首先需要注意的是,本书并不是入门级的语法介绍类的书籍,因此在阅读本书之前假定你已经掌握了最基础的 Python 语法。如果没有,也没有关系,你可以先找一本最简单的介绍 Python 语法的书籍看看,尝试写几个 Python 小程序之后再来阅读本书。
本书分为 8 章,主要从编程惯用法、基础语法、库、设计模式、内部机制、开发工具、性能剖析与优化等方面解读如何编写高质量的 Python 程序。每个章节的内容都以建议的形式呈现,这些建议或源于实际项目应用经验,或源于对 Python 本质的理解和探讨,或源于社区推荐的做法。它们能够帮助读者快速完成从入门到进阶的这个过程。
由于各个章节相对独立,因此无须花费整段的时间从头开始阅读。你可以在空闲的时候选取任意感兴趣的小节阅读。为了减轻读者负担,本书代码尽量保持完整,阅读过程中无须额外下载其他相关代码。
勘误和支持
由于作者的水平有限,加之编写时间仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你在阅读过程中遇到任何问题或者发现任何错误,欢迎发送邮件至邮箱 highqualitypython@163.com,我们会尽量一一解答直到你满意。期待能够得到你的真挚反馈。
致谢
首先要感谢机械工业出版社华章公司的杨福川老师,因为有了你的鼓励才使我有勇气开始这本书。还要感谢机械工业出版社的孙海亮编辑,在这一年多的时间中始终支持我的写作,是你的鼓励和帮助引导我顺利完成全部书稿。当然也要感谢我的搭档赖老师,和你合作是一件非常愉快的事情,也让我收获颇多。
其次要感谢我的家人,是你们的宽容、支持和理解给了我完成本书的动力,也是你们无微不至的照顾让我不必为生活中的琐事烦心,从而能全身心地投入到写作中去。
最后,我想提前感谢一下本书的读者,谢谢你们能够选择阅读这本书,这将是作为作者的我们最大的荣幸。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论