深入理解Python特性 / 图灵程序设计丛书
¥49.00定价
作者: [德] 达恩·巴德尔
出版时间:2019-06
出版社:人民邮电出版社
- 人民邮电出版社
- 9787115511546
- 300913
- 2019-06
- TP311.561
内容简介
本书致力于帮助Python开发人员挖掘这门语言及相关程序库的特性,避免重复劳动,同时写出简洁、流畅、易读、易维护的代码。
用好Python需要了解的zui重要的特性、Python 2过渡到Python 3需要掌握的现代模式、有其他编程语言背景想快速上手Python的程序员需要特别注意的问题,
等等,本书都可以解决。
用好Python需要了解的zui重要的特性、Python 2过渡到Python 3需要掌握的现代模式、有其他编程语言背景想快速上手Python的程序员需要特别注意的问题,
等等,本书都可以解决。
目录
第 1章简介1
1.1什么是Python技巧1
1.2本书作用2
1.3如何阅读本书2
第2章 Python整洁之道4
2.1用断言加一层保险4
2.1.1示例:Python中的断言4
2.1.2为什么不用普通的异常来处理6
2.1.4常见陷阱6
2.1.5Python断言总结9
2.1.6关键要点9
2.2巧妙地放置逗号9
2.3上下文管理器和with语句11
2.3.1在自定义对象中支持with12
2.3.2用上下文管理器编写漂亮的API13
2.3.3关键要点15
2.4下划线、双下划线及其他15
2.4.1前置单下划线:_var15
2.4.2后置单下划线:var_17
2.4.3前置双下划线:__var17
2.4.4前后双下划线:__var__20
2.4.5单下划线:_21
2.4.6关键要点22
2.5字符串格式化中令人震惊的真相22
2.5.1第 一种方法:“旧式”字符串格式化22
2.5.2第二种方法:“新式”字符串格式化23
2.5.3第三种方法:字符串字面值插值(Python 3.6+)24
2.5.4第四种方法:模板字符串25
2.5.5如何选择字符串格式化方法26
2.5.6关键要点27
2.6“Python之禅”中的彩蛋27
第3章高效的函数28
3.1函数是Python的头等对象28
3.1.1函数是对象28
3.1.2函数可存储在数据结构中29
3.1.3函数可传递给其他函数30
3.1.4函数可以嵌套31
3.1.5函数可捕捉局部状态32
3.1.6对象也可作为函数使用33
3.1.7关键要点33
3.2lambda是单表达式函数34
3.2.1lambda的使用场景35
3.2.2不应过度使用lambda36
3.2.3关键要点36
3.3装饰器的力量37
3.3.1Python装饰器基础38
3.3.2装饰器可以修改行为39
3.3.3将多个装饰器应用于一个函数41
3.3.5如何编写“可调试”的装饰器44
3.4有趣的*args和**kwargs44
3.4.1传递可选参数或关键字参数45
3.4.2关键要点46
3.5函数参数解包47
3.6返回空值48
第4章类与面向对象51
4.1对象比较:is 与==51
4.2字符串转换(每个类都需要__repr__)52
4.2.1__str__与__repr__54
4.2.2为什么每个类都需要__repr__55
4.2.3Python 2.x的差异:__unicode__57
4.2.4关键要点58
4.3定义自己的异常类58
4.4克隆对象60
4.4.1制作浅副本61
4.4.2制作深副本62
4.4.3复制任意对象63
4.4.4关键要点65
4.5用抽象基类避免继承错误65
4.6namedtuple的优点67
4.6.1namedtuple上场68
4.6.2子类化namedtuple70
4.6.3内置的辅助方法70
4.6.4何时使用namedtuple71
4.6.5关键要点71
4.7类变量与实例变量的陷阱72
4.7.1与狗无关的例子74
4.7.2关键要点75
4.8实例方法、类方法和静态方法揭秘75
4.8.1实例方法76
4.8.2类方法76
4.8.3静态方法76
4.8.4在实践中探寻77
4.8.5使用@classmethod的Pizza工厂类78
4.8.6什么时候使用静态方法80
4.8.7关键要点81
第5章Python中常见的数据结构82
5.1字典、映射和散列表83
5.1.1dict——*选字典实现83
deredDict——能记住键的插入顺序84
faultdict——为缺失的键返回默认值85
ainMap——搜索多个字典85
ppingProxyType——用于创建只读字典86
5.1.6Python中的字典:总结86
5.1.7关键要点87
5.2数组数据结构87
5.2.1列表——可变动态数组88
5.2.2元组——不可变容器88
ray——基本类型数组89
5.2.4str——含有Unicode 字符的不可变数组90
5.2.5bytes——含有单字节的不可变数组91
5.2.6bytearray——含有单字节的可变数组91
5.2.7关键要点92
5.3记录、结构体和纯数据对象93
5.3.1字典——简单数据对象93
5.3.2元组——不可变对象集合94
5.3.3编写自定义类——手动精细控制96
dtuple——方便的数据对象96
dTuple——改进版namedtuple97
ruct——序列化C结构体98
mpleNamespace——花哨的属性访问99
5.3.8关键要点99
5.4集合和多重集合100
5.4.1set——*选集合实现101
5.4.2frozenset——不可变集合101
unter——多重集合101
5.4.4关键要点102
5.5栈(后进先出)102
5.5.1列表——简单的内置栈103
que——快速且稳健的栈104
foQueue——为并行计算提供锁语义104
5.5.4比较Python 中各个栈的实现105
5.6队列(先进先出)106
5.6.1列表——非常慢的队列107
que——快速和稳健的队列107
eue——为并行计算提供的锁语义108
eue——共享作业队列108
5.6.5关键要点109
5.7优先队列109
5.7.1列表——手动维护有序队列110
iorityQueue——美丽的优先级队列111
5.7.4关键要点111
第6章循环和迭代112
6.1编写Python式的循环112
6.2理解解析式114
6.3列表切片技巧与寿司操作员116
6.4美丽的迭代器118
6.4.1无限迭代119
6.4.2for-in循环在Python中的工作原理121
6.4.3更简单的迭代器类122
6.4.4不想无限迭代123
6.4.5Python 2.x兼容性125
6.4.6关键要点126
6.5生成器是简化版迭代器126
6.5.1无限生成器126
6.5.2能够停下来的生成器128
6.5.3关键要点130
6.6生成器表达式130
6.6.1生成器表达式与列表解析式132
6.6.3内联生成器表达式133
6.6.4物极必反133
6.6.5关键要点134
6.7迭代器链134
第7章字典技巧137
7.1字典默认值137
7.2字典排序139
7.3用字典模拟switch/case语句141
7.4“zui疯狂”的字典表达式144
7.5合并词典的几种方式148
7.6美观地输出字典149
第8章Python式高效技巧152
8.1探索Python的模块和对象152
8.2用virtualenv隔离项目依赖关系154
8.2.1使用虚拟环境155
8.2.2关键要点157
8.3在字节码后一窥究竟157
第9章结语161
9.1针对Python开发者每周提示161
9.2PythonistaCafe:Python开发人员的社区162
1.1什么是Python技巧1
1.2本书作用2
1.3如何阅读本书2
第2章 Python整洁之道4
2.1用断言加一层保险4
2.1.1示例:Python中的断言4
2.1.2为什么不用普通的异常来处理6
2.1.4常见陷阱6
2.1.5Python断言总结9
2.1.6关键要点9
2.2巧妙地放置逗号9
2.3上下文管理器和with语句11
2.3.1在自定义对象中支持with12
2.3.2用上下文管理器编写漂亮的API13
2.3.3关键要点15
2.4下划线、双下划线及其他15
2.4.1前置单下划线:_var15
2.4.2后置单下划线:var_17
2.4.3前置双下划线:__var17
2.4.4前后双下划线:__var__20
2.4.5单下划线:_21
2.4.6关键要点22
2.5字符串格式化中令人震惊的真相22
2.5.1第 一种方法:“旧式”字符串格式化22
2.5.2第二种方法:“新式”字符串格式化23
2.5.3第三种方法:字符串字面值插值(Python 3.6+)24
2.5.4第四种方法:模板字符串25
2.5.5如何选择字符串格式化方法26
2.5.6关键要点27
2.6“Python之禅”中的彩蛋27
第3章高效的函数28
3.1函数是Python的头等对象28
3.1.1函数是对象28
3.1.2函数可存储在数据结构中29
3.1.3函数可传递给其他函数30
3.1.4函数可以嵌套31
3.1.5函数可捕捉局部状态32
3.1.6对象也可作为函数使用33
3.1.7关键要点33
3.2lambda是单表达式函数34
3.2.1lambda的使用场景35
3.2.2不应过度使用lambda36
3.2.3关键要点36
3.3装饰器的力量37
3.3.1Python装饰器基础38
3.3.2装饰器可以修改行为39
3.3.3将多个装饰器应用于一个函数41
3.3.5如何编写“可调试”的装饰器44
3.4有趣的*args和**kwargs44
3.4.1传递可选参数或关键字参数45
3.4.2关键要点46
3.5函数参数解包47
3.6返回空值48
第4章类与面向对象51
4.1对象比较:is 与==51
4.2字符串转换(每个类都需要__repr__)52
4.2.1__str__与__repr__54
4.2.2为什么每个类都需要__repr__55
4.2.3Python 2.x的差异:__unicode__57
4.2.4关键要点58
4.3定义自己的异常类58
4.4克隆对象60
4.4.1制作浅副本61
4.4.2制作深副本62
4.4.3复制任意对象63
4.4.4关键要点65
4.5用抽象基类避免继承错误65
4.6namedtuple的优点67
4.6.1namedtuple上场68
4.6.2子类化namedtuple70
4.6.3内置的辅助方法70
4.6.4何时使用namedtuple71
4.6.5关键要点71
4.7类变量与实例变量的陷阱72
4.7.1与狗无关的例子74
4.7.2关键要点75
4.8实例方法、类方法和静态方法揭秘75
4.8.1实例方法76
4.8.2类方法76
4.8.3静态方法76
4.8.4在实践中探寻77
4.8.5使用@classmethod的Pizza工厂类78
4.8.6什么时候使用静态方法80
4.8.7关键要点81
第5章Python中常见的数据结构82
5.1字典、映射和散列表83
5.1.1dict——*选字典实现83
deredDict——能记住键的插入顺序84
faultdict——为缺失的键返回默认值85
ainMap——搜索多个字典85
ppingProxyType——用于创建只读字典86
5.1.6Python中的字典:总结86
5.1.7关键要点87
5.2数组数据结构87
5.2.1列表——可变动态数组88
5.2.2元组——不可变容器88
ray——基本类型数组89
5.2.4str——含有Unicode 字符的不可变数组90
5.2.5bytes——含有单字节的不可变数组91
5.2.6bytearray——含有单字节的可变数组91
5.2.7关键要点92
5.3记录、结构体和纯数据对象93
5.3.1字典——简单数据对象93
5.3.2元组——不可变对象集合94
5.3.3编写自定义类——手动精细控制96
dtuple——方便的数据对象96
dTuple——改进版namedtuple97
ruct——序列化C结构体98
mpleNamespace——花哨的属性访问99
5.3.8关键要点99
5.4集合和多重集合100
5.4.1set——*选集合实现101
5.4.2frozenset——不可变集合101
unter——多重集合101
5.4.4关键要点102
5.5栈(后进先出)102
5.5.1列表——简单的内置栈103
que——快速且稳健的栈104
foQueue——为并行计算提供锁语义104
5.5.4比较Python 中各个栈的实现105
5.6队列(先进先出)106
5.6.1列表——非常慢的队列107
que——快速和稳健的队列107
eue——为并行计算提供的锁语义108
eue——共享作业队列108
5.6.5关键要点109
5.7优先队列109
5.7.1列表——手动维护有序队列110
iorityQueue——美丽的优先级队列111
5.7.4关键要点111
第6章循环和迭代112
6.1编写Python式的循环112
6.2理解解析式114
6.3列表切片技巧与寿司操作员116
6.4美丽的迭代器118
6.4.1无限迭代119
6.4.2for-in循环在Python中的工作原理121
6.4.3更简单的迭代器类122
6.4.4不想无限迭代123
6.4.5Python 2.x兼容性125
6.4.6关键要点126
6.5生成器是简化版迭代器126
6.5.1无限生成器126
6.5.2能够停下来的生成器128
6.5.3关键要点130
6.6生成器表达式130
6.6.1生成器表达式与列表解析式132
6.6.3内联生成器表达式133
6.6.4物极必反133
6.6.5关键要点134
6.7迭代器链134
第7章字典技巧137
7.1字典默认值137
7.2字典排序139
7.3用字典模拟switch/case语句141
7.4“zui疯狂”的字典表达式144
7.5合并词典的几种方式148
7.6美观地输出字典149
第8章Python式高效技巧152
8.1探索Python的模块和对象152
8.2用virtualenv隔离项目依赖关系154
8.2.1使用虚拟环境155
8.2.2关键要点157
8.3在字节码后一窥究竟157
第9章结语161
9.1针对Python开发者每周提示161
9.2PythonistaCafe:Python开发人员的社区162