人民邮电出版社有限公司店铺主页二维码
人民邮电出版社有限公司 微信认证
人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
微信扫描二维码,访问我们的微信店铺
你可以使用微信联系我们,随时随地的购物、客服咨询、查询订单和物流...

Python工匠:案例、技巧与工程实践

74.90
运费: ¥ 0.00-20.00
Python工匠:案例、技巧与工程实践 商品图0
Python工匠:案例、技巧与工程实践 商品图1
Python工匠:案例、技巧与工程实践 商品缩略图0 Python工匠:案例、技巧与工程实践 商品缩略图1

商品详情

书名: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



人民邮电出版社有限公司店铺主页二维码
人民邮电出版社有限公司 微信公众号认证
人民邮电出版社微店,为您提供最全面,最专业的一站式购书服务
扫描二维码,访问我们的微信店铺
随时随地的购物、客服咨询、查询订单和物流...

Python工匠:案例、技巧与工程实践

手机启动微信
扫一扫购买

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏

微信支付

支付宝

扫一扫购买

打开微信,扫一扫

或搜索微信号:renyoushe
人民邮电出版社官方微信公众号

收藏到微信 or 发给朋友

1. 打开微信,扫一扫左侧二维码

2. 点击右上角图标

点击右上角分享图标

3. 发送给朋友、分享到朋友圈、收藏

发送给朋友、分享到朋友圈、收藏