新書推薦:
《
为你想要的生活
》
售價:HK$
67.9
《
关键改变:如何实现自我蜕变
》
售價:HK$
79.4
《
超加工人群:为什么有些食物让人一吃就停不下来
》
售價:HK$
102.4
《
历史的教训(浓缩《文明的故事》精华,总结历史教训的独特见解)
》
售價:HK$
64.4
《
不在场证明谜案(超绝CP陷入冤案!日本文坛超新星推理作家——辻堂梦代表作首次引进!)
》
售價:HK$
59.8
《
明式家具三十年经眼录
》
售價:HK$
538.2
《
敦煌写本文献学(增订本)
》
售價:HK$
227.7
《
耕读史
》
售價:HK$
112.7
|
編輯推薦: |
* 学习用Python断言自动检测程序错误 * 合理使用格式化和逗号维护列表、字典和集合 * 深入理解Python的头等对象函数 * 使用__str__和__repr__双下划线方法自行控制类中的字符串转换 * namedtuple如何更好地组织数据结构 掌握的Python技巧多一点儿,写出来的Python代码性能高一截儿。 :
|
內容簡介: |
本书致力于帮助Python开发人员挖掘这门语言及相关程序库的优秀特性,避免重复劳动,同时写出简洁、流畅、易读、易维护的代码。用好Python需要了解的*重要的特性、Python 2过渡到Python 3需要掌握的现代模式、有其他编程语言背景想快速上手Python的程序员需要特别注意的问题,等等,本书都可以解决。
|
關於作者: |
达恩巴德尔(Dan Bader) 影响全球1 000 000以上程序员的PythonistaCafe社区创始人,Real Python培训机构总编,拥有近20年软件开发经验。巴德尔毕业于欧洲历史悠久的慕尼黑工业大学,该校以优异的科教质量闻名,到2018年已经培养出17位诺贝尔奖得主。
|
目錄:
|
第 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.5 Python断言总结 9
2.1.6 关键要点 9
2.2 巧妙地放置逗号 9
2.3 上下文管理器和with语句 11
2.3.1 在自定义对象中支持with 12
2.3.2 用上下文管理器编写漂亮的API 13
2.3.3 关键要点 15
2.4 下划线、双下划线及其他 15
2.4.1 前置单下划线:_var 15
2.4.2 后置单下划线:var_ 17
2.4.3 前置双下划线:__var 17
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.2 lambda是单表达式函数 34
3.2.1 lambda的使用场景 35
3.2.2 不应过度使用lambda 36
3.2.3 关键要点 36
3.3 装饰器的力量 37
3.3.1 Python装饰器基础 38
3.3.2 装饰器可以修改行为 39
3.3.3 将多个装饰器应用于一个函数 41
3.3.5 如何编写可调试的装饰器 44
3.4 有趣的*args和**kwargs 44
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.3 Python 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.6 namedtuple的优点 67
4.6.1 namedtuple上场 68
4.6.2 子类化namedtuple 70
4.6.3 内置的辅助方法 70
4.6.4 何时使用namedtuple 71
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.1 dict首选字典实现 83
5.1.2 collections.OrderedDict能记住键的插入顺序 84
5.1.3 collections.defaultdict为缺失的键返回默认值 85
5.1.4 collections.ChainMap搜索多个字典 85
5.1.5 types.MappingProxyType用于创建只读字典 86
5.1.6 Python中的字典:总结 86
5.1.7 关键要点 87
5.2 数组数据结构 87
5.2.1 列表可变动态数组 88
5.2.2 元组不可变容器 88
5.2.3 array.array基本类型数组 89
5.2.4 str含有Unicode 字符的不可变数组 90
5.2.5 bytes含有单字节的不可变数组 91
5.2.6 bytearray含有单字节的可变数组 91
5.2.7 关键要点 92
5.3 记录、结构体和纯数据对象 93
5.3.1 字典简单数据对象 93
5.3.2 元组不可变对象集合 94
5.3.3 编写自定义类手动精细控制 96
5.3.4 collections.namedtuple方便的数据对象 96
5.3.5 typing.NamedTuple改进版namedtuple 97
5.3.6 struct.Struct序列化C结构体 98
5.3.7 types.SimpleNamespace花哨的属性访问 99
5.3.8 关键要点 99
5.4 集合和多重集合 100
5.4.1 set首选集合实现 101
5.4.2 frozenset不可变集合 101
5.4.3 collections.Counter多重集合 101
5.4.4 关键要点 102
5.5 栈(后进先出) 102
5.5.1 列表简单的内置栈 103
5.5.2 collections.deque快速且稳健的栈 104
5.5.3 queue.LifoQueue为并行计算提供锁语义 104
5.5.4 比较Python 中各个栈的实现 105
5.6 队列(先进先出) 106
5.6.1 列表非常慢的队列 107
5.6.2 collections.deque快速和稳健的队列 107
5.6.3 queue.Queue为并行计算提供的锁语义 108
5.6.4 multiprocessing.Queue共享作业队列 108
5.6.5 关键要点 109
5.7 优先队列 109
5.7.1 列表手动维护有序队列 110
5.7.3 queue.PriorityQueue美丽的优先级队列 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.2 for-in循环在Python中的工作原理 121
6.4.3 更简单的迭代器类 122
6.4.4 不想无限迭代 123
6.4.5 Python 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 用字典模拟switchcase语句 141
7.4 最疯狂的字典表达式 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.2 PythonistaCafe:Python开发人员的社区 162
|
|