深入理解Python特性

深入理解Python特性

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

    关注微信公众号

因版权原因待上架

编辑推荐

本书不是简单的代码片段合集,而是能让你深入理解Python的内在原理,并欣赏其优美之处。

内容简介

本书致力于帮助Python开发人员挖掘这门语言及相关程序库的优秀特性,避免重复劳动,同时写出简洁、流畅、易读、易维护的代码。用好Python需要了解的最重要的特性、Python2过渡到Python3需要掌握的现代模式、有其他编程语言背景想快速上手Python的程序员需要特别注意的问题,等等,本书都可以解决。

作者简介

作者达恩·巴德尔,影响全球一百万以上程序员的PythonistaCafe社区创始人,Real Python培训机构总编,拥有近20年软件开发经验。巴德尔毕业于欧洲历史悠久的慕尼黑工业大学,该校以优异的科教质量闻名,截至2018年已经培养出17位诺贝尔奖得主。

章节目录

版权信息

Python高手对本书的评论

第1章 简介

1.1 什么是Python技巧

1.2 本书作用

1.3 如何阅读本书

第2章 Python整洁之道

2.1 用断言加一层保险

2.1.1 示例:Python中的断言

2.1.2 为什么不用普通的异常来处理

2.1.3 Python的断言语法

2.1.4 常见陷阱

2.1.5 Python断言总结

2.1.6 关键要点

2.2 巧妙地放置逗号

关键要点

2.3 上下文管理器和with语句

2.3.1 在自定义对象中支持with

2.3.2 用上下文管理器编写漂亮的API

2.3.3 关键要点

2.4 下划线、双下划线及其他

2.4.1 前置单下划线:_var

2.4.2 后置单下划线:var_

2.4.3 前置双下划线:__var

2.4.4 前后双下划线:__var__

2.4.5 单下划线:_

2.4.6 关键要点

2.5 字符串格式化中令人震惊的真相

2.5.1 第一种方法:“旧式”字符串格式化

2.5.2 第二种方法:“新式”字符串格式化

2.5.3 第三种方法:字符串字面值插值(Python 3.6+)

2.5.4 第四种方法:模板字符串

2.5.5 如何选择字符串格式化方法

2.5.6 关键要点

2.6 “Python之禅”中的彩蛋

第3章 高效的函数

3.1 函数是Python的头等对象

3.1.1 函数是对象

3.1.2 函数可存储在数据结构中

3.1.3 函数可传递给其他函数

3.1.4 函数可以嵌套

3.1.5 函数可捕捉局部状态

3.1.6 对象也可作为函数使用

3.1.7 关键要点

3.2 lambda是单表达式函数

3.2.1 lambda的使用场景

3.2.2 不应过度使用lambda

3.2.3 关键要点

3.3 装饰器的力量

3.3.1 Python装饰器基础

3.3.2 装饰器可以修改行为

3.3.3 将多个装饰器应用于一个函数

3.3.4 装饰接受参数的函数

3.3.5 如何编写“可调试”的装饰器

3.3.6 关键要点

3.4 有趣的*args和**kwargs

3.4.1 传递可选参数或关键字参数

3.4.2 关键要点

3.5 函数参数解包

关键要点

3.6 返回空值

关键要点

第4章 类与面向对象

4.1 对象比较:is与==

4.2 字符串转换(每个类都需要__repr__)

4.2.1 __str__与__repr__

4.2.2 为什么每个类都需要__repr__

4.2.3 的差异:__unicode__

4.2.4 关键要点

4.3 定义自己的异常类

关键要点

4.4 克隆对象

4.4.1 制作浅副本

4.4.2 制作深副本

4.4.3 复制任意对象

4.4.4 关键要点

4.5 用抽象基类避免继承错误

关键要点

4.6 namedtuple的优点

4.6.1 namedtuple上场

4.6.2 子类化namedtuple

4.6.3 内置的辅助方法

4.6.4 何时使用namedtuple

4.6.5 关键要点

4.7 类变量与实例变量的陷阱

4.7.1 与狗无关的例子

4.7.2 关键要点

4.8 实例方法、类方法和静态方法揭秘

4.8.1 实例方法

4.8.2 类方法

4.8.3 静态方法

4.8.4 在实践中探寻

4.8.5 使用@classmethod的Pizza工厂类

4.8.6 什么时候使用静态方法

4.8.7 关键要点

第5章 Python中常见的数据结构

5.1 字典、映射和散列表

5.1.1 dict——首选字典实现

5.1.2 collections.OrderedDict——能记住键的插入顺序

5.1.3 collections.defaultdict——为缺失的键返回默认值

5.1.4 collections.ChainMap——搜索多个字典

5.1.5 types.MappingProxyType——用于创建只读字典

5.1.6 Python中的字典:总结

5.1.7 关键要点

5.2 数组数据结构

5.2.1 列表——可变动态数组

5.2.2 元组——不可变容器

5.2.3 array.array——基本类型数组

5.2.4 str——含有Unicode字符的不可变数组

5.2.5 bytes——含有单字节的不可变数组

5.2.6 bytearray——含有单字节的可变数组

5.2.7 关键要点

5.3 记录、结构体和纯数据对象

5.3.1 字典——简单数据对象

5.3.2 元组——不可变对象集合

5.3.3 编写自定义类——手动精细控制

5.3.4 collections.namedtuple——方便的数据对象

5.3.5 typing.NamedTuple——改进版namedtuple

5.3.6 struct.Struct——序列化C结构体

5.3.7 types.SimpleNamespace——花哨的属性访问

5.3.8 关键要点

5.4 集合和多重集合

5.4.1 set——首选集合实现

5.4.2 frozenset——不可变集合

5.4.3 collections.Counter——多重集合

5.4.4 关键要点

5.5 栈(后进先出)

5.5.1 列表——简单的内置栈

5.5.2 collections.deque——快速且稳健的栈

5.5.3 queue.LifoQueue——为并行计算提供锁语义

5.5.4 比较Python中各个栈的实现

5.5.5 关键要点

5.6 队列(先进先出)

5.6.1 列表——非常慢的队列

5.6.2 collections.deque——快速和稳健的队列

5.6.3 queue.Queue——为并行计算提供的锁语义

5.6.4 multiprocessing.Queue——共享作业队列

5.6.5 关键要点

5.7 优先队列

5.7.1 列表——手动维护有序队列

5.7.2 heapq——基于列表的二叉堆

5.7.3 queue.PriorityQueue——美丽的优先级队列

5.7.4 关键要点

第6章 循环和迭代

6.1 编写有Python特色的循环

关键要点

6.2 理解解析式

关键要点

6.3 列表切片技巧与寿司操作员

关键要点

6.4 美丽的迭代器

6.4.1 无限迭代

6.4.2 for-in循环在Python中的工作原理

6.4.3 更简单的迭代器类

6.4.4 不想无限迭代

6.4.5 兼容性

6.4.6 关键要点

6.5 生成器是简化版迭代器

6.5.1 无限生成器

6.5.2 能够停下来的生成器

6.5.3 关键要点

6.6 生成器表达式

6.6.1 生成器表达式与列表解析式

6.6.2 过滤值

6.6.3 内联生成器表达式

6.6.4 物极必反

6.6.5 关键要点

6.7 迭代器链

关键要点

第7章 字典技巧

7.1 字典默认值

关键要点

7.2 字典排序

关键要点

7.3 用字典模拟switch/case语句

关键要点

7.4 “最疯狂”的字典表达式

关键要点

7.5 合并词典的几种方式

关键要点

7.6 美观地输出字典

关键要点

第8章 Python式高效技巧

8.1 探索Python的模块和对象

关键要点

8.2 用virtualenv隔离项目依赖关系

8.2.1 使用虚拟环境

8.2.2 关键要点

8.3 一窥字节码的究竟

关键要点

第9章 结语

9.1 针对Python开发者免费每周提示

9.2 PythonistaCafe:Python开发人员的社区

看完了

深入理解Python特性是2019年由人民邮电出版社出版,作者[德]达恩·巴德尔。

得书感谢您对《深入理解Python特性》关注和支持,如本书内容有不良信息或侵权等情形的,请联系本网站。

购买这本书

你可能喜欢
Python算法详解 电子书
- 以“从入门到精通”的写作方法构建内容,让读者入门容易。 为了使读者能够完全看懂本书的内容,本书遵循“从入门到精通”基础类图书的写法,循序渐进地讲解算法的知识。 - 破解语言难点,以“技术解惑”贯穿全书,绕过学习中的陷阱。 为了帮助读者学懂算法,每章都会有“技术解惑”模块,让读者知其然又知其所以然。 - 书中包含大量典型实例。 书中有195个实例,通过这些实例的练习,读者有更多的实践演练机会。 - 通过QQ群和网站论坛实现教学互动,形成互帮互学的朋友圈。 本书作者为了方便给读者答疑,特地提供了网站论坛、QQ群等技术支持,并且随时在线与读者互动。让大家在互学互帮中形成一个良好的学习编程的氛围。网站名称和群号,详见本书前言部分。
Python编程从入门到精通 电子书
带你由浅入深地详细了解Python语言开发技术。
Spring实战(第6版) 电子书
一本经典而实用的Spring学习指南。
第一行代码:Android(第3版) 电子书
本书详解Android开发知识,基于Android 10.0、Kotlin编写,适合初学者和进阶开发者。
Python编程做中学 电子书
一本零基础的Python编程入门书。