Python工匠:案例、技巧与工程实践(基于Python3.8,实现从入门到工匠的跃迁)

Python工匠:案例、技巧与工程实践(基于Python3.8,实现从入门到工匠的跃迁)

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

    关注微信公众号

编辑推荐

1.专业:基于GitHub人气开源文章“Python工匠”系列,基于Python3.8,广受读者喜爱。2.稀缺:源自本土一线项目案例,融入互联网大厂工程实践经验。3.专注:聚焦真实项目中高频使用的Python编程核心知识点。4.实用:14个项目案例,60多个编程技巧与建议,立等可用,提供源代码下载。

内容简介

本书从工程实践角度出发,通过剖析核心知识、展示典型案例与总结实用技巧,帮助大家系统进阶Python,写好工程代码,做好实践项目。本书共计13章,分为五大部分:变量与基础类型、语法结构、函数与装饰器、面向对象编程、总结与延伸,涵盖Python进阶编程的方方面面。

作者简介

朱雷(@piglei) 


就职于腾讯IEG技术运营部,现任蓝鲸工具PaaS平台负责人,参与和主导了包括“蓝鲸工具PaaS平台”在内的诸多大型项目,从事后端开发与架构设计十余年,曾就职于搜狐、赶集网。 


精通Python语言特性,对如何开发高质量的大型Python工程有独到见解。 从2016年开始创作“Python工匠”系列开源技术文章,其GitHub Star数超过4K,被“腾讯技术工程”等多家媒体全系列转载,收获诸多好评。 


GitHub账号:piglei。公众号:piglei。

章节目录

版权信息

本书赞誉

前言

第1章 变量与注释

1.1 基础知识

1.1.1 变量常见用法

1.1.2 给变量注明类型

1.1.3 变量命名原则

1.1.4 注释基础知识

1.2 案例故事

奇怪的冒泡排序算法

1.3 编程建议

1.3.1 保持变量的一致性

1.3.2 变量定义尽量靠近使用

1.3.3 定义临时变量提升可读性

1.3.4 同一作用域内不要有太多变量

1.3.5 能不定义变量就别定义

1.3.6 不要使用 locals()

1.3.7 空行也是一种“注释”

1.3.8 先写注释,后写代码

1.4 总结

第2章 数值与字符串

2.1 基础知识

2.1.1 数值基础

2.1.2 布尔值其实也是数字

2.1.3 字符串常用操作

2.1.4 不常用但特别好用的字符串方法

2.1.5 字符串与字节串

2.2 案例故事

2.2.1 代码里的“密码”

2.2.2 别轻易成为 SQL 语句“大师”

2.3 编程建议

2.3.1 不必预计算字面量表达式

2.3.2 使用特殊数字:“无穷大”

2.3.3 改善超长字符串的可读性

2.3.4 别忘了以 r 开头的字符串内置方法

2.3.5 不要害怕字符串拼接

2.4 总结

第3章 容器类型

3.1 基础知识

3.1.1 列表常用操作

3.1.2 理解列表的可变性

3.1.3 常用元组操作

3.1.4 具名元组

3.1.5 字典常用操作

3.1.6 认识字典的有序性与无序性

3.1.7 集合常用操作

3.1.8 了解对象的可哈希性

3.1.9 深拷贝与浅拷贝

3.2 案例故事

分析网站访问日志

3.3 编程建议

3.3.1 用按需返回替代容器

3.3.2 了解容器的底层实现

3.3.3 掌握如何快速合并字典

3.3.4 使用有序字典去重

3.3.5 别在遍历列表时同步修改

3.3.6 编写推导式的两个“不要”

3.3.7 让函数返回 NamedTuple

3.4 总结

第4章 条件分支控制流

4.1 基础知识

4.1.1 分支惯用写法

4.1.2 修改对象的布尔值

4.1.3 与 None 比较时使用 is 运算符

4.2 案例故事

消失的分支

4.3 编程建议

4.3.1 尽量避免多层分支嵌套

4.3.2 别写太复杂的条件表达式

4.3.3 尽量降低分支内代码的相似性

4.3.4 使用“德摩根定律”

4.3.5 使用 all()/any() 函数构建条件表达式

4.3.6 留意 and 和 or 的运算优先级

4.3.7 避开 or 运算符的陷阱

4.4 总结

第5章 异常与错误处理

5.1 基础知识

5.1.1 优先使用异常捕获

5.1.2 try 语句常用知识

5.1.3 抛出异常,而不是返回错误

5.1.4 使用上下文管理器

5.2 案例故事

5.2.1 提前崩溃也挺好

5.2.2 异常与抽象一致性

5.3 编程建议

5.3.1 不要随意忽略异常

5.3.2 不要手动做数据校验

5.3.3 抛出可区分的异常

5.3.4 不要使用 assert 来检查参数合法性

5.3.5 无须处理是最好的错误处理

5.4 总结

第6章 循环与可迭代对象

6.1 基础知识

6.1.1 迭代器与可迭代对象

6.1.2 修饰可迭代对象优化循环

6.1.3 使用 itertools 模块优化循环

6.1.4 循环语句的 else 关键字

6.2 案例故事

数字统计任务

6.3 编程建议

6.3.1 中断嵌套循环的正确方式

6.3.2 巧用 next() 函数

6.3.3 当心已被耗尽的迭代器

6.4 总结

第7章 函数

7.1 基础知识

7.1.1 函数参数的常用技巧

7.1.2 函数返回的常见模式

7.1.3 常用函数模块:functools

7.2 案例故事

函数与状态

7.3 编程建议

7.3.1 别写太复杂的函数

7.3.2 一个函数只包含一层抽象

7.3.3 优先使用列表推导式

7.3.4 你没有那么需要 lambda

7.3.5 了解递归的局限性

7.4 总结

第8章 装饰器

8.1 基础知识

8.1.1 装饰器基础

8.1.2 使用 functools.wraps() 修饰包装函数

8.1.3 实现可选参数装饰器

8.1.4 用类来实现装饰器(函数替换)

8.1.5 用类来实现装饰器(实例替换)

8.1.6 使用 wrapt 模块助力装饰器编写

8.2 编程建议

8.2.1 了解装饰器的本质优势

8.2.2 使用类装饰器替代元类

8.2.3 别弄混装饰器和装饰器模式

8.2.4 浅装饰器,深实现

8.3 总结

第9章 面向对象编程

9.1 基础知识

9.1.1 类常用知识

9.1.2 内置类方法装饰器

9.1.3 鸭子类型及其局限性

9.1.4 抽象类

9.1.5 多重继承与 MRO

9.1.6 其他知识

9.2 案例故事

继承是把双刃剑

9.3 编程建议

9.3.1 使用 __init_subclass__ 替代元类

9.3.2 在分支中寻找多态的应用时机

9.3.3 有序组织你的类方法

9.3.4 函数搭配,干活不累

9.4 总结

第10章 面向对象设计原则(上)

10.1 类型注解基础

10.2 SRP:单一职责原则

10.2.1 案例:一个简单的 Hacker News 爬虫

10.2.2 违反 SRP 的坏处

10.2.3 大类拆小类

10.3 OCP:开放 - 关闭原则

10.3.1 接受 OCP 的考验

10.3.2 通过继承改造代码

10.3.3 使用组合与依赖注入

10.3.4 使用数据驱动

10.4 总结

第11章 面向对象设计原则(下)

11.1 LSP:里式替换原则

11.1.1 子类随意抛出异常

11.1.2 子类随意调整方法参数与返回值

11.1.3 基于隐式合约违反 LSP

11.1.4 LSP 小结

11.2 DIP:依赖倒置原则

11.2.1 案例:按来源统计 Hacker News 条目数量

11.2.2 为脚本编写单元测试

11.2.3 实现 DIP

11.2.4 倒置后的单元测试

11.2.5 DIP 小结

11.3 ISP:接口隔离原则

11.3.1 案例:处理页面归档需求

11.3.2 修改实体类

11.3.3 违反 ISP

11.3.4 分拆接口

11.3.5 其他违反 ISP 的场景

11.4 总结

第12章 数据模型与描述符

12.1 基础知识

12.1.1 字符串魔法方法

12.1.2 比较运算符重载

12.1.3 描述符

12.2 案例故事

处理旅游数据的三种方案

12.3 编程建议

12.3.1 认识 __hash__ 的危险性

12.3.2 数据模型不是“躺赢”之道

12.3.3 不要依赖 __del__ 方法

12.4 总结

第13章 开发大型项目

13.1 常用工具介绍

13.1.1 flake8

13.1.2 isort

13.1.3 black

13.1.4 pre-commit

13.1.5 mypy

13.2 单元测试简介

13.2.1 unittest

13.2.2 pytest

13.3 有关单元测试的建议

13.3.1 写单元测试不是浪费时间

13.3.2 不要总想着“补”测试

13.3.3 难测试的代码就是烂代码

13.3.4 像应用代码一样对待测试代码

13.3.5 避免教条主义

13.4 总结

结语

作者简介

Python工匠:案例、技巧与工程实践(基于Python3.8,实现从入门到工匠的跃迁)是2022年由人民邮电出版社出版,作者朱雷(@piglei)。

得书感谢您对《Python工匠:案例、技巧与工程实践(基于Python3.8,实现从入门到工匠的跃迁)》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

你可能喜欢
MATLABAppDesigner从入门到实践 电子书
本书以编程工具App Designer为中心进行引导式学习。
Python网络爬虫从入门到精通 电子书
适读人群 :Python语言初学者;网络爬虫技术爱好者;数据分析从业人士 内容全面,结构清晰:本书详细介绍了网络爬虫技术的方方面面,讨论了数据抓取、数据处理和数据分析的整个流程。全书结构清晰,坚持理论知识与实践操作结合。 循序渐进,生动简洁:从简单的Python程序示例开始,在网络爬虫的核心主题之下一步步深入,兼顾内容的广度与深度。在行文中,使用生动简洁的阐述方式,力争详略得当。 示例丰富,实战性强:网络爬虫是实践性、操作性非常强的技术,本书将提供丰富的代码来作为读者的参考,同时对必要的术语和代码进行解释。从生活实际出发,选取实用性、趣味性兼具的主题进行网络爬虫实践。
Python从入门到精通(精粹版) 电子书
本书以零基础读者为对象,用范例引导读者学习,深入浅出地介绍了Python的相关知识和实战技能。本书从Python基础入手,介绍了Python的开发环境、各种数据类型的操作方法、流程控制、函数等Python内核技术,以及使用Python处理文件、处理错误与异常等各种应用,最后列举了Python在重要领域的项目实战,内容系统且深入。本书提供与内容同步的教学录像。此外,本书还赠送大量相关学习资料,以便读
C编程从入门到实践 电子书
更适合95后的C语言编程入门书。
机器学习与Python实践 电子书
机器学习理论实践全书,12章内容丰富,适合各层次读者。