商品详情
书名:Python工匠:案例、技巧与工程实践
定价:99.8
ISBN:9787115584045
作者:朱雷
版次:第1版
出版时间:2022-03
内容提要:
本书基于广受好评的“Python工匠”系列开源文章。*书从工程实践角度出发,通过剖析核心知识、展示典型案例与总结实用技巧,帮助大家系统进*
Python,写好工程代码,做好实践项目。
本书共计*3章,分为五大*分:变量与基础类型、语法结构、函数与装饰器、面向对象编程、总结与延伸,涵盖Python编程的方方面面。本书的写作方式
别具*格,核心知识点*会通过三大板块来阐述:基础知识、案例故事、编程建议。其中基础知识帮助大家快速回顾Python基础;案例故事由作者经历的
编程项目与案例改编而来,兼具实战性与趣味性;编程建议以大家喜闻乐见的条目式知识点呈现,短小*悍,可直接应用于自己的编程实践中。
作者简介:
朱雷(@piglei)
*职于腾讯IEG技术运营*,现任蓝鲸工具PaaS平台负责人,参与和*了*括“蓝鲸工具PaaS平台”在内的诸多大型项目,从事后端开发与架构设计十余
年,曾*职于搜狐、赶集网。
*通Python语言*性,对如何开发*质量的大型Python工程有*到见解。 从20*6年开始*作“Python工匠”系列开源技术文章,其GitHub Star数*过4K,
被“腾讯技术工程”等多家媒体*系列转载,收获诸多好评。
GitHub账号:piglei。*:piglei。
目录:
前言 v
第 *章 变量与注释 *
*.* 基础知识 2
*.*.* 变量常见用法 2
*.*.2 给变量注明类型 4
*.*.3 变量命名原则 6
*.*.4 注释基础知识 **
*.2 案例故事 *4
奇怪的冒泡排序算法 *5
*.3 编程建议 *7
*.3.* *持变量的**性 *8
*.3.2 变量定义尽量靠近使用 *8
*.3.3 定义临时变量提*可读性 20
*.3.4 同*作用域内*要有太多变量 2*
*.3.5 能*定义变量*别定义 22
*.3.6 *要使用locals() 23
*.3.7 空行也是*种“注释” 24
*.3.8 先写注释,后写代码 25
*.4 总结 26
第 2章 数值与字符串 28
2.* 基础知识 29
2.*.* 数值基础 29
2.*.2 布尔值其实也是数字 3*
2.*.3 字符串常用操作 3*
2.*.4 *常用但*别好用的字符串方法 34
2.*.5 字符串与字节串 36
2.2 案例故事 39
2.2.* 代码里的“密码” 39
2.2.2 别轻易成为SQL语句“*” 4*
2.3 编程建议 44
2.3.* **预计算字面量表达式 44
2.3.2 使用*殊数字:“*穷大” 46
2.3.3 **长字符串的可读性 47
2.3.4 别忘了以r开头的字符串内置方法 48
2.3.5 *要害怕字符串拼接 49
2.4 总结 50
第3章 容器类型 53
3.* 基础知识 54
3.*.* 列表常用操作 54
3.*.2 理解列表的可变性 56
3.*.3 常用元组操作 60
3.*.4 具名元组 6*
3.*.5 字典常用操作 63
3.*.6 认识字典的有序性与*序性 66
3.*.7 集合常用操作 68
3.*.8 了解对象的可哈希性 7*
3.*.9 深拷贝与浅拷贝 72
3.2 案例故事 74
分析网站访问日志 75
3.3 编程建议 83
3.3.* 用按需返回替代容器 83
3.3.2 了解容器的底层实现 86
3.3.3 掌握如何快速合并字典 89
3.3.4 使用有序字典去重 9*
3.3.5 别在遍历列表时同步修改 92
3.3.6 编写推导式的两个“*要” 92
3.3.7 让函数返回NamedTuple 94
3.4 总结 95
第4章 条件分支控制流 97
4.* 基础知识 98
4.*.* 分支惯用写法 98
4.*.2 修改对象的布尔值 *0*
4.*.3 与None比较时使用is运算符 *03
4.2 案例故事 *05
消失的分支 *05
4.3 编程建议 **2
4.3.* 尽量避*多层分支嵌套 **2
4.3.2 别写太复杂的条件表达式 **4
4.3.3 尽量降低分支内代码的相似性 **5
4.3.4 使用“德摩根定律” **6
4.3.5 使用all()/any()函数构建条件表达式 **7
4.3.6 留意and和or的运算*先级 **8
4.3.7 避开or运算符的陷阱 **8
4.4 总结 **9
第5章 异常与错误处理 *2*
5.* 基础知识 *22
5.*.* *先使用异常捕获 *22
5.*.2 try语句常用知识 *24
5.*.3 抛出异常,而*是返回错误 *27
5.*.4 使用上下文管理器 *29
5.2 案例故事 *33
5.2.* 提前崩溃也挺好 *33
5.2.2 异常与抽象**性 *36
5.3 编程建议 *39
5.3.* *要随意忽略异常 *39
5.3.2 *要手动做数据校验 *40
5.3.3 抛出可区分的异常 *42
5.3.4 *要使用assert来检查参数合法性 *44
5.3.5 *须处理是最好的错误处理 *45
5.4 总结 *49
第6章 循环与可迭代对象 *5*
6.* 基础知识 *52
6.*.* 迭代器与可迭代对象 *52
6.*.2 修饰可迭代对象*化循环 *58
6.*.3 使用itertools模块*化循环 *60
6.*.4 循环语句的else关键字 *62
6.2 案例故事 *64
数字统计任务 *64
6.3 编程建议 *68
6.3.* 中断嵌套循环的正确方式 *68
6.3.2 巧用next()函数 *70
6.3.3 当心已被耗尽的迭代器 *7*
6.4 总结 *72
第7章 函数 *74
7.* 基础知识 *75
7.*.* 函数参数的常用技巧 *75
7.*.2 函数返回的常见模式 *79
7.*.3 常用函数模块:functools *84
7.2 案例故事 *87
函数与状态 *87
7.3 编程建议 *94
7.3.* 别写太复杂的函数 *94
7.3.2 *个函数只*含*层抽象 *96
7.3.3 *先使用列表推导式 203
7.3.4 你没有那么需要lambda 204
7.3.5 了解递归的局限性 205
7.4 总结 207
第8章 装饰器 209
8.* 基础知识 2**
8.*.* 装饰器基础 2**
8.*.2 使用functools.wraps()修饰*装函数 2*3
8.*.3 实现可选参数装饰器 2*5
8.*.4 用类来实现装饰器(函数替换) 2*7
8.*.5 用类来实现装饰器(实例替换) 2*9
8.*.6 使用wrapt模块助力装饰器编写 22*
8.2 编程建议 223
8.2.* 了解装饰器的本质*势 223
8.2.2 使用类装饰器替代元类 225
8.2.3 别弄混装饰器和装饰器模式 226
8.2.4 浅装饰器,深实现 227
8.3 总结 228
第9章 面向对象编程 230
9.* 基础知识 232
9.*.* 类常用知识 232
9.*.2 内置类方法装饰器 235
9.*.3 鸭子类型及其局限性 239
9.*.4 抽象类 242
9.*.5 多重继承与MRO 248
9.*.6 其他知识 25*
9.2 案例故事 255
继承是把双刃剑 255
9.3 编程建议 265
9.3.* 使用__init_subclass__替代元类 265
9.3.2 在分支中寻找多态的应用时机 266
9.3.3 有序组织你的类方法 268
9.3.4 函数搭配,干活*累 270
9.4 总结 274
第 *0章 面向对象设计原则(上) 276
*0.* 类型注解基础 278
*0.2 SRP:单*职责原则 279
*0.2.* 案例:*个简单的Hacker News爬虫 280
*0.2.2 违反SRP的坏处 283
*0.2.3 大类拆小类 284
*0.3 OCP:开放-关闭原则 285
*0.3.* 接受OCP的考验 286
*0.3.2 通过继承改造代码 288
*0.3.3 使用组合与依赖注入 289
*0.3.4 使用数据驱动 292
*0.4 总结 294
第 **章 面向对象设计原则(下) 295
**.* LSP:里式替换原则 296
**.*.* 子类随意抛出异常 296
**.*.2 子类随意调整方法参数与返回值 300
**.*.3 基于隐式合约违反LSP 304
**.*.4 LSP小结 306
**.2 DIP:依赖倒置原则 306
**.2.* 案例:按来源统计Hacker News条目数量 307
**.2.2 为脚本编写单元测试 309
**.2.3 实现DIP 3**
**.2.4 倒置后的单元测试 3*4
**.2.5 DIP小结 3*5
**.3 ISP:接口隔离原则 3*7
**.3.* 案例:处理页面归档需求 3*7
**.3.2 修改实体类 3*8
**.3.3 违反ISP 320
**.3.4 分拆接口 320
**.3.5 其他违反ISP的场景 322
**.4 总结 322
第 *2章 数据模型与描述符 324
*2.* 基础知识 326
*2.*.* 字符串魔法方法 326
*2.*.2 比较运算符重载 329
*2.*.3 描述符 332
*2.2 案例故事 34*
处理旅游数据的三种方案 34*
*2.3 编程建议 350
*2.3.* 认识__hash__的危险性 350
*2.3.2 数据模型*是“躺赢”之道 35*
*2.3.3 *要依赖__del__方法 353
*2.4 总结 354
第 *3章 开发大型项目 356
*3.* 常用工具介绍 357
*3.*.* flake8 357
*3.*.2 isort 360
*3.*.3 black 36*
*3.*.4 pre-commit 364
*3.*.5 mypy 365
*3.2 单元测试简介 366
*3.2.* unittest 367
*3.2.2 pytest 369
*3.3 有关单元测试的建议 375
*3.3.* 写单元测试*是浪费时间 375
*3.3.2 *要总想着“补”测试 377
*3.3.3 难测试的代码*是烂代码 378
*3.3.4 像应用代码*样对待测试代码 379
*3.3.5 避*教条主义 380
*3.4 总结 38*
结语 383
- 人民邮电出版社有限公司 (微信公众号认证)
- 人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
- 扫描二维码,访问我们的微信店铺
- 随时随地的购物、客服咨询、查询订单和物流...