华章程序员书库Python代码整洁之道:编写优雅的代码
- ISBN:9787111665878
- 装帧:一般胶版纸
- 册数:暂无
- 重量:暂无
- 开本:16开
- 页数:208
- 出版时间:2020-10-01
- 条形码:9787111665878 ; 978-7-111-66587-8
本书特色
适读人群 :本书主要面向具备基本的Python编程知识,希望通过学习正确的Python编程方法来提高编程技能的读者。本书旨在为不同级别的Python开发人员提供编程技巧方面的指引,以编写出更好的Python软件和程序。所提供的各种技术也不受限于Python的使用领域,同时还展示了如何让代码更符合Python的风格。 具体地,第1章介绍使你的Python代码更加具有可读性和简洁性的常用规则;第2~6章分别针对各个功能模块进行介绍;第7章涵盖了Python中一些非常有用的新特性;第8章讲述调试和测试Python代码;*后在附录中还附带介绍了一些非常棒的Python工具。
内容简介
本书首先介绍格式化编码和代码记录以获得*大可读性的重要性,使用内置数据结构和Python字典提高可维护性,并使用模块和元类有效地组织代码。然后深入研究Python语言的新特性,并学习如何有效地利用它们。接下来,将解码诸如异步编程、Python数据类型、类型提示和路径处理等关键概念。学习在Python代码中调试和执行单元测试和集成测试的技巧,以确保代码可以投入生产。*后介绍用于版本管理、管理实时代码和智能代码完成的必要工具。
目录
●第1章 关于Python的思考1
1.1 编写Python代码1
1.1.1 命名2
1.1.2 代码中的表达式和语句5
1.1.3 拥抱Python编写代码的方式8
1.2 使用文档字符串14
1.2.1 模块级文档字符串17
1.2.2 使类文档字符串具有描述性17
1.2.3 函数文档字符串18
1.2.4 一些有用的文档字符串工具19
1.3 编写Python的控制结构20
1.3.1 使用列表推导20
1.3.2 不要使用复杂的列表推导21
1.3.3 应该使用lambda吗23
1.3.4 何时使用生成器与何时使用列表推导23
1.3.5 为什么不要在循环中使用else24
1.3.6 为什么range函数在Python 3中更好27
1.4 引发异常28
1.4.1 习惯引发异常28
1.4.2 使用finally来处理异常30
1.4.3 创建自己的异常类31
1.4.4 只处理特定的异常32
1.4.5 小心第三方的异常34
1.4.6 try*少的代码块35
1.5 小结36
●第2章 数据结构38
2.1 常用数据结构38
2.1.1 使用集合38
2.1.2 返回和访问数据时使用namedtuple40
2.1.3 理解str、Unicode和byte43
2.1.4 谨慎使用列表,优先使用生成器44
2.1.5 使用zip处理列表47
2.1.6 使用Python的内置函数48
2.2 使用字典50
2.2.1 何时使用字典与何时使用其他数据结构51
2.2.2 collections51
2.2.3 有序字典、默认字典、普通字典54
2.2.4 使用字典的switch语句55
2.2.5 合并两个字典的方法56
2.2.6 优雅地打印字典57
2.3 小结58
●第3章 编写更好的函数和类59
3.1 函数59
3.1.1 编写小函数60
3.1.2 返回生成器61
3.1.3 引发异常替代返回None63
3.1.4 使用默认参数和关键字参数64
3.1.5 不要显式地返回None66
3.1.6 编写函数时注意防御68
3.1.7 单独使用lambda表达式70
3.2 类72
3.2.1 类的大小72
3.2.2 类结构73
3.2.3 正确地使用@property75
3.2.4 什么时候使用静态方法77
3.2.5 继承抽象类79
3.2.6 使用@classmethod来访问类的状态80
3.2.7 使用公有属性代替私有属性81
3.3 小结83
●第4章 使用模块和元类84
4.1 模块和元类84
4.2 如何使用模块组织代码86
4.3 使用__init__文件88
4.4 以正确的方式从模块导入函数和类90
4.5 何时使用元类92
4.6 使用__new__方法验证子类93
4.7 __slots__的用途95
4.8 使用元类改变类的行为98
4.9 Python描述符100
4.10 小结102
●第5章 装饰器和上下文管理器104
5.1 装饰器105
5.1.1 装饰器及其作用105
5.1.2 理解装饰器106
5.1.3 使用装饰器更改行为108
5.1.4 同时使用多个装饰器110
5.1.5 使用带参数的装饰器111
5.1.6 考虑使用装饰器库112
5.1.7 用于维护状态和验证参数的类装饰器114
5.2 上下文管理器117
5.2.1 上下文管理器及用途117
5.2.2 理解上下文管理器119
5.2.3 使用contextlib创建上下文管理器120
5.2.4 上下文管理器的示例121
5.3 小结124
●第6章 生成器与迭代器125
6.1 使用生成器和迭代器125
6.1.1 理解迭代器125
6.1.2 什么是生成器128
6.1.3 何时使用迭代器129
6.1.4 使用itertools130
6.1.5 为什么生成器非常有用132
6.1.6 列表推导和迭代器133
6.2 使用yield关键字133
6.2.1 yield from135
6.2.2 yield相比数据结构更快135
6.3 小结136
●第7章 使用Python的新特性137
7.1 异步编程137
7.1.1 Python中的async138
7.1.2 asyncio是如何工作的141
7.1.3 异步生成器151
7.2 类型标注159
7.2.1 Python中的类型160
7.2.2 typing模块160
7.2.3 类型检查会影响性能吗163
7.2.4 类型标注如何帮助编写更好的代码163
7.2.5 typing的陷阱163
7.3 super()方法164
7.4 类型提示164
7.5 使用pathlib处理路径164
7.6 print()现在是一个函数165
7.7 f-string165
7.8 关键字参数166
7.9 保持字典数据的顺序166
7.10 迭代解包166
7.11 小结167
●第8章 调试和测试Python代码168
8.1 调试168
8.1.1 调试工具169
8.1.2 breakpoint172
8.1.3 在产品代码中使用logging模块替代print172
8.1.4 使用metrics库来分析性能瓶颈177
8.1.5 IPython有什么帮助178
8.2 测试179
8.2.1 测试非常重要179
8.2.2 Pytest和UnitTest180
8.2.3 属性测试184
8.2.4 生成测试报告184
8.2.5 自动化单元测试185
8.2.6 让代码为生产做好准备186
8.2.7 在Python中执行单元和集成测试186
8.3 小结189
附录 一些很棒的Python工具190
作者简介
【作者简介】 Sunil Kapil在过去的10年中一直从事软件开发工作,用Python和其他几种语言编写代码,主要涉及Web和移动端服务的软件开发。他开发、部署并维护了被数百万用户喜爱和使用的各种项目,这些项目是与来自不同专业环境的团队合作完成的,涉及世界著名的软件公司。他也是开源的热情倡导者,并持续贡献Zulip Chat和Black等项目。他还与非营利组织合作,并以志愿者的身份为其软件项目做出贡献。 【译者介绍】 连少华 先后就职于中兴通讯、深交所、金证股份等知名公司和机构,热衷于软件事业,技术栈广泛,涉及C++、C#、Java、Python、Golang等,对架构设计和底层技术有深入的理解和实践,曾经给国外的一些开源库提交过bug并贡献过代码。在CSDN论坛担任过5年多的C++小版的版主和C/C++大版的版主。译有《C++代码整洁之道》,现致力于大数据平台的设计与开发。
-
有限与无限的游戏:一个哲学家眼中的竞技世界
¥37.4¥68.0 -
硅谷之火-人与计算机的未来
¥14.3¥39.8 -
全图解零基础word excel ppt 应用教程
¥12.0¥48.0 -
机器学习
¥59.4¥108.0 -
深度学习的数学
¥43.5¥69.0 -
智能硬件项目教程:基于ARDUINO(第2版)
¥31.9¥65.0 -
元启发式算法与背包问题研究
¥38.2¥49.0 -
AI虚拟数字人:商业模式+形象创建+视频直播+案例应用
¥62.9¥89.8 -
UNIX环境高级编程(第3版)
¥164.9¥229.0 -
剪映AI
¥52.8¥88.0 -
深度学习高手笔记 卷2:经典应用
¥90.9¥129.8 -
纹样之美:中国传统经典纹样速查手册
¥77.4¥109.0 -
UG NX 12.0数控编程
¥24.8¥45.0 -
MATLAB计算机视觉与深度学习实战(第2版)
¥90.9¥128.0 -
界面交互设计理论研究
¥30.8¥56.0 -
UN NX 12.0多轴数控编程案例教程
¥25.8¥38.0 -
微机组装与系统维护技术教程(第二版)
¥37.8¥43.0 -
Go 语言运维开发 : Kubernetes 项目实战
¥48.2¥79.0 -
明解C语言:实践篇
¥62.9¥89.8 -
Linux服务器架设实战(Linux典藏大系)
¥84.5¥119.0