编写整洁的Python代码(第2版)

编写整洁的Python代码(第2版)

查阅电子书
手机扫码
  • 微信扫一扫

    关注微信公众号

编辑推荐

本书介绍实现Python代码整洁应遵循的基本原则,帮你编写更易于维护和更整洁的代码。

内容简介

这是一本介绍如何实现Python代码整洁的书,主要介绍如何使用Python 3.9引入的新特性提升编码技能。此外,本书还介绍了以下内容:通过利用自动化工具建立高效的开发环境,利用Python中的魔法方法来编写更好的代码,抽象代码复杂性并封装细节,使用Python特有的特性创建高级的面向对象设计,通过使用面向对象设计的软件工程原则创建强大的抽象来消除代码重复,使用装饰器和描述符创建特定于Python的解决方案,运用单元测试方法有效重构代码,以及通过实现整洁的代码库为构建坚实的架构打下基础等。本书对新手程序员和有经验的程序员同样适用,也适合想通过编写Python代码来节省成本和提高效率的团队领导、软件架构师和高级软件工程师参考。当然在阅读本书前,读者应掌握一些Python基础知识。

作者简介

作者马里亚诺·阿那亚,是西班牙籍软件工程师,有丰富的用Python语言开发软件,曾在2016年和2017年“欧洲Python大会”上发表演讲。

章节目录

版权信息

版权声明

内容提要

作者简介

技术审核简介

前言

资源与支持

第1章 简介、代码格式设置和工具

1.1 简介

1.1.1 整洁代码的含义

1.1.2 整洁代码的重要性

1.1.3 一些例外情况

1.2 设置代码的格式

在项目中遵循编码风格指南

1.3 文档

1.3.1 代码注释

1.3.2 文档字符串

1.3.3 注解

1.3.4 注解是否会取代文档字符串

1.4 配置和使用工具

1.4.1 类型一致性检查

1.4.2 一般性代码验证

1.4.3 自动设置格式

1.4.4 自动检查设置

1.5 小结

1.6 参考资料

第2章 符合Python语言习惯的代码

2.1 索引和切片

创建自己的序列

2.2 上下文管理器

实现上下文管理器

2.3 推导式和赋值表达式

2.4 对象的特性、属性及各种方法

2.4.1 Python中的下划线

2.4.2 特性

2.4.3 使用更紧凑的语法创建类

2.4.4 可迭代对象

2.4.5 容器对象

2.4.6 对象的动态属性

2.4.7 可调用对象

2.4.8 魔法方法小结

2.5 Python注意事项

2.5.1 可变的默认参数

2.5.2 扩展内置类型

2.6 异步代码简介

2.7 小结

2.8 参考资料

第3章 优质代码的通用特征

3.1 契约式设计

3.1.1 前置条件

3.1.2 后置条件

3.1.3 Python契约

3.1.4 契约式设计小结

3.2 防御式编程

3.2.1 错误处理

3.2.2 在Python中使用断言

3.3 关注点分离

内聚和耦合

3.4 常见缩略语

3.4.1 DRY/OAOO

3.4.2 YAGNI

3.4.3 KIS

3.4.4 EAFP/LBYL

3.5 Python中的继承

3.5.1 什么情况下使用继承是个好主意

3.5.2 反模式的继承

3.5.3 Python中的多继承

3.6 函数和方法中的参数

3.6.1 Python中函数参数的工作原理

3.6.2 函数的参数数量

3.7 有关软件设计最佳实践的最后说明

3.7.1 软件中的正交性

3.7.2 结构化代码

3.8 小结

3.9 参考资料

第4章 SOLID原则

4.1 单一职责原则

4.1.1 一个职责过多的类

4.1.2 分配职责

4.2 开/闭原则

4.2.1 因未遵循OCP而带来可维护性问题的示例

4.2.2 重构事件系统以提高可扩展性

4.2.3 扩展事件系统

4.2.4 OCP小结

4.3 里氏替换原则

4.3.1 使用工具找出LSP问题

4.3.2 更微妙的LSP违反情形

4.3.3 LSP小结

4.4 接口分离

4.4.1 一个提供了太多功能的接口

4.4.2 接口越小越好

4.4.3 接口应多小

4.5 依赖倒置

4.5.1 一个刚性依赖案例

4.5.2 倒置依赖

4.5.3 依赖注入

4.6 小结

4.7 参考资料

第5章 使用装饰器改善代码

5.1 Python装饰器是什么

5.1.1 函数装饰器

5.1.2 类装饰器

5.1.3 其他类型的装饰器

5.2 高级装饰器

5.2.1 向装饰器传递参数

5.2.2 指定了参数默认值的装饰器

5.2.3 协程装饰器

5.2.4 扩展的装饰器语法

5.3 充分利用装饰器

5.3.1 调整函数的签名

5.3.2 验证参数

5.3.3 跟踪代码

5.4 有效的装饰器:避免常见错误

5.4.1 保留被包装的原始对象的数据

5.4.2 在装饰器中处理副作用

5.4.3 创建在任何情况下都管用的装饰器

5.5 装饰器与整洁的代码

5.5.1 组合胜过继承

5.5.2 DRY原则与装饰器

5.5.3 装饰器与关注点分离

5.5.4 分析优良的装饰器

5.6 小结

5.7 参考资料

第6章 使用描述符更充分地利用对象

6.1 初识描述符

6.1.1 描述符背后的机制

6.1.2 探讨描述符协议中的各个方法

6.2 描述符类型

6.2.1 非数据描述符

6.2.2 数据描述符

6.3 使用描述符

6.3.1 描述符的一种用途

6.3.2 各种描述符实现方式

6.3.3 使用描述符时需要考虑的其他方面

6.4 分析描述符

6.4.1 Python如何在内部使用描述符

6.4.2 在装饰器中实现描述符

6.5 描述符结语

6.5.1 描述符的接口

6.5.2 描述符的面向对象设计

6.5.3 描述符中的类型注解

6.6 小结

6.7 参考资料

第7章 生成器、迭代器和异步编程

7.1 技术要求

7.2 创建生成器

7.2.1 初识生成器

7.2.2 生成器表达式

7.3 以惯用法迭代

迭代惯用法

7.4 协程

7.4.1 生成器接口中的方法

7.4.2 高级协程

7.5 异步编程

7.5.1 异步魔法方法

7.5.2 异步迭代

7.5.3 异步生成器

7.6 小结

7.7 参考资料

第8章 单元测试和重构

8.1 设计原则与单元测试

8.1.1 其他形式的自动测试

8.1.2 单元测试与敏捷软件开发

8.1.3 单元测试与软件设计

8.1.4 确定测试范围

8.2 测试工具

用于单元测试的框架和库

8.3 重构

8.3.1 代码演进

8.3.2 需要演进的并非只有生产代码

8.4 再谈测试

8.4.1 基于属性的测试

8.4.2 变异测试

8.4.3 常见的测试概念

8.4.4 测试驱动开发简介

8.5 小结

8.6 参考资料

第9章 常见设计模式

9.1 在Python中使用设计模式时需要注意的事项

9.2 设计模式实战

9.2.1 创建型模式

9.2.2 结构型模式

9.2.3 行为型模式

9.3 空对象模式

9.4 设计模式结语

9.4.1 模式对设计的影响

9.4.2 作为理论的设计模式

9.4.3 模型中的名称

9.5 小结

9.6 参考资料

第10章 整洁的架构

10.1 从整洁代码到整洁架构

10.1.1 关注点分离

10.1.2 大一统的应用程序和微服务

10.1.3 抽象

10.2 软件组件

10.2.1 包

10.2.2 Docker容器

10.2.3 用例

10.2.4 服务

10.3 小结

10.4 参考资料

结语

编写整洁的Python代码(第2版)是2022年由人民邮电出版社出版,作者[西班牙] 马里亚诺·阿那亚。

得书感谢您对《编写整洁的Python代码(第2版)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
第一行代码  C语言(视频讲解版) 电子书
学习程序设计,初学者往往遇到这样的困境:语言规则可以倒背如流,但写出的代码总是编译通不过,即使编译通过了却也得不出想要的结果。怎么办?《行代码 C语言》可以给你提供帮助。 你不需要具备高深的数学和电子学知识,只需要训练自己以计算机能够理解的方式去表达自己的逻辑,也就是要具备“计算思维”,寻找到解决问题的方法,然后用编程语言去指挥计算机执行即可。因此,本书与常规的C语言书不同,除了C语言本身的语法规则外,本书更关注的是培养初学者具有程序设计的思想,掌握程序设计的方法。 另外,计蒜客在线教育团队,为本书的读者提供了伴随式的在线编程平台支持,读者可以将图书和线上编程结合起来学习。 提供扫码看视频服务,全书94个微视频,总时长超过1000分钟。 提供辅助教学资源包,包括实验、试卷及答案、教学大纲、PPT等。
R语言编程:基于tidyverse 电子书
一本基于tidyverse入门R语言编程的书。
Python机器学习开发实战 电子书
Python机器学习入门,以实战为重点,配有大量代码和案例,简单、快速、易学。
Python深度学习(第2版) 电子书
Keras之父、谷歌人工智能研究员弗朗索瓦·肖莱执笔,深度学习领域力作。
易学C++(第2版) 电子书
适读人群 :C初学者程序员 形象的比喻,生动的讲解,重新诠释了学习语言的方法 实用的示例,完整的代码,为学习者量身打造的案例 易学、易懂、易于实践的知识结构,降低学习C 的门槛 一、书中的语言通俗易懂,常以形象的比喻和插图来解释C的语法现象和各种概念,便于读者理解,使他们印象深刻。 二、书中介绍大量实用技巧也是一项特色,特别是中篇系统地介绍程序的阅读、调试和编程思想,是市面上同类书籍少有的。 三、从初学者的角度讲解C,降低了C的学习门槛,是一本编程基础零起点的好教程。通过在网站上试读,已经得到广大C编程爱好者的强烈响应和支持. 易学C在各大编程论坛反响强烈,具体情况如下:(有些是读者主动帮忙宣传) http://www.programfan.com/club/post-128283-1.html http://www.programfan.com/club/post-128840-1.html http://download.csdn.net/source/227661 http://bbs.bc-cn.net/dispbbs.asp?boardID=56&ID=37649&page=1 http://www.shubulo.com/viewthread.php?tid=32915 上海的知名媒体《新闻晚报》也报道过《易学C》: http://www.jfdaily.com/gb/jfxww/xinwen/node1222/node11824/userobject1ai1525250.html