本书由奋战在Python开发一线近20年的Luciano Ramalho执笔,Victor Stinner、Alex Martelli等Python大咖担纲技术审稿人,从语言设计层面剖析编程细节,兼顾Python 3和Python 2,告诉你Python中不亲自动手实践就无法理解的语言陷阱成因和解决之道,教你写出风格地道的Python代码。
● Python数据模型:理解为什么特殊方法是对象行为一致的关键。
● 数据结构:充分利用内置类型,理解Unicode文本和字节二象性。
● 把函数视作对象:把Python函数视作一等对象,并了解这一点对流行的设计模式的影响。
● 面向对象习惯用法:通过构建类学习引用、可变性、接口、运算符重载和多重继承。
● 控制流程:学习使用上下文管理器、生成器、协程,以及通过concurrent.futures和asyncio包实现的并发。
● 元编程:理解特性、描述符、类装饰器和元类的工作原理。
本书致力于帮助Python开发人员挖掘这门语言及相关程序库的优秀特性,避免重复劳动,同时写出简洁、流畅、易读、易维护,并且具有地道Python风格的代码。本书尤其深入探讨了Python语言的高级用法,涵盖数据结构、Python风格的对象、并行与并发,以及元编程等不同的方面。
Luciano Ramalho,从1998年起就成为了Python程序员。他是Python软件基金会的成员,Python.pro.br(巴西的一家培训公司)的共同所有者,还是巴西众创空间Garoa Hacker Clube的联合创始人。他领导过多个软件开发团队,还在巴西的媒体、银行和政府部门教授Python课程。
安道,专注于现代计算机技术的自由翻译,译有《Flask Web 开发》《Python 网络编程攻略》《Ruby on Rails 教程》等书。
吴珂,现为Airbnb公司软件工程师,所在团队主要负责开发和维护各类可伸缩、高性能服务,并在Airbnb内推广面向服务的系统架构。在分布式系统、云存储服务和跨平台SDK开发,以及大规模数据处理等方面有多年经验。
前言 xvii
第一部分 序幕
第1章 Python 数据模型 2
1.1 一摞 Python 风格的纸牌 3
1.2 如何使用特殊方法 6
1.2.1 模拟数值类型 7
1.2.2 字符串表示形式 9
1.2.3 算术运算符 10
1.2.4 自定义的布尔值 10
1.3 特殊方法一览 10
1.4 为什么 len 不是普通方法 12
1.5 本章小结 12
1.6 延伸阅读 13
第二部分 数据结构
第2章 序列构成的数组 16
2.1 内置序列类型概览 17
2.2 列表推导和生成器表达式 18
2.3 元组不仅仅是不可变的列表 22
2.4 切片 28
2.5 对序列使用 + 和 * 31
2.6 序列的增量赋值 33
2.7 list.sort 方法和内置函数 sorted 36
2.8 用 bisect 来管理已排序的序列 37
2.9 当列表不是首选时 41
2.10 本章小结 49
2.11 延伸阅读 50
第3章 字典和集合 54
3.1 泛映射类型 54
3.2 字典推导 56
3.3 常见的映射方法 57
3.4 映射的弹性键查询 61
3.5 字典的变种 65
3.6 子类化 UserDict 65
3.7 不可变映射类型 67
3.8 集合论 68
3.9 dict 和 set 的背后 73
3.10 本章小结 80
3.11 延伸阅读 81
第4章 文本和字节序列 83
4.1 字符问题 84
4.2 字节概要 85
4.3 基本的编解码器 88
4.4 了解编解码问题 89
4.5 处理文本文件 94
4.6 为了正确比较而规范化 Unicode 字符串 99
4.7 Unicode 文本排序 105
4.8 Unicode 数据库 108
4.9 支持字符串和字节序列的双模式 API 109
4.10 本章小结 112
4.11 延伸阅读 113
第三部分 把函数视作对象
第5章 一等函数 118
5.1 把函数视作对象 119
5.2 高阶函数 120
5.3 匿名函数 122
5.4 可调用对象 122
5.5 用户定义的可调用类型 123
5.6 函数内省 124
5.7 从定位参数到仅限关键字参数 126
5.8 获取关于参数的信息 127
5.9 函数注解 131
5.10 支持函数式编程的包 132
5.11 本章小结 137
5.12 延伸阅读 137
第6章 使用一等函数实现设计模式 141
6.1 案例分析:重构“策略”模式 142
6.2 “命令”模式 150
6.3 本章小结 151
6.4 延伸阅读 152
第7章 函数装饰器和闭包 154
7.1 装饰器基础知识 155
7.2 Python 何时执行装饰器 156
7.3 使用装饰器改进“策略”模式 157
7.4 变量作用域规则 159
7.5 闭包 161
7.6 nonlocal 声明 164
7.7 实现一个简单的装饰器 165
7.8 标准库中的装饰器 168
7.9 叠放装饰器 172
7.10 参数化装饰器 173
7.11 本章小结 177
7.12 延伸阅读 178
第四部分 面向对象惯用法
第8章 对象引用、可变性和垃圾回收 182
8.1 变量不是盒子 183
8.2 标识、相等性和别名 184
8.3 默认做浅复制 187
8.4 函数的参数作为引用时 190
8.5 del 和垃圾回收 195
8.6 弱引用 196
8.7 Python 对不可变类型施加的把戏 199
8.8 本章小结 201
8.9 延伸阅读 201
第9章 符合 Python 风格的对象 205
9.1 对象表示形式 206
9.2 再谈向量类 206
9.3 备选构造方法 208
9.4 classmethod 与 staticmethod 209
9.5 格式化显示 210
9.6 可散列的 Vector2d 213
9.7 Python 的私有属性和“受保护的”属性 218
9.8 使用 __slots__ 类属性节省空间 220
9.9 覆盖类属性 222
9.10 本章小结 224
9.11 延伸阅读 225
第10章 序列的修改、散列和切片 229
10.1 Vector 类:用户定义的序列类型 230
10.2 Vector 类第1 版:与 Vector2d 类兼容 230
10.3 协议和鸭子类型 232
10.4 Vector 类第2 版:可切片的序列 233
10.5 Vector 类第3 版:动态存取属性 237
10.6 Vector 类第4 版:散列和快速等值测试 240
10.7 Vector 类第5 版:格式化 244
10.8 本章小结 251
10.9 延伸阅读 251
第11章 接口:从协议到抽象基类 256
11.1 Python 文化中的接口和协议 257
11.2 Python 喜欢序列 258
11.3 使用猴子补丁在运行时实现协议 260
11.4 Alex Martelli 的水禽 262
11.5 定义抽象基类的子类 266
11.6 标准库中的抽象基类 267
11.7 定义并使用一个抽象基类 270
11.8 Tombola 子类的测试方法 278
11.9 Python 使用 register 的方式 281
11.10 鹅的行为有可能像鸭子 281
11.11 本章小结 283
11.12 延伸阅读 284
第12章 继承的优缺点 289
12.1 子类化内置类型很麻烦 289
12.2 多重继承和方法解析顺序 292
12.3 多重继承的真实应用 296
12.4 处理多重继承 298
12.5 一个现代示例:Django 通用视图中的混入 301
12.6 本章小结 304
12.7 延伸阅读 304
第13章 正确重载运算符 307
13.1 运算符重载基础 308
13.2 一元运算符 308
13.3 重载向量加法运算符 + 310
13.4 重载标量乘法运算符 * 315
13.5 众多比较运算符 318
13.6 增量赋值运算符 321
13.7 本章小结 325
13.8 延伸阅读 326
第五部分 控制流程
第14章 可迭代的对象、迭代器和生成器 330
14.1 Sentence 类第1 版:单词序列 331
14.2 可迭代的对象与迭代器的对比 334
14.3 Sentence 类第2 版:典型的迭代器 337
14.4 Sentence 类第3 版:生成器函数 339
14.5 Sentence 类第4 版:惰性实现 343
14.6 Sentence 类第5 版:生成器表达式 344
14.7 何时使用生成器表达式 345
14.8 另一个示例:等差数列生成器 346
14.9 标准库中的生成器函数 349
14.10 Python 3.3 中新出现的句法: yield from 357
14.11 可迭代的归约函数 358
14.12 深入分析 iter 函数 359
14.13 案例分析:在数据库转换工具中使用生成器 360
14.14 把生成器当成协程 362
14.15 本章小结 362
14.16 延伸阅读 363
第15章 上下文管理器和 else 块 368
15.1 先做这个,再做那个: if 语句之外的 else 块 369
15.2 上下文管理器和 with 块 370
15.3 contextlib 模块中的实用工具 374
15.4 使用 @contextmanager 375
15.5 本章小结 378
15.6 延伸阅读 378
第16章 协程 381
16.1 生成器如何进化成协程 382
16.2 用作协程的生成器的基本行为 382
16.3 示例:使用协程计算移动平均值 385
16.4 预激协程的装饰器 386
16.5 终止协程和异常处理 388
16.6 让协程返回值 391
16.7 使用 yield from 393
16.8 yield from 的意义 398
16.9 使用案例:使用协程做离散事件仿真 403
16.10 本章小结 410
16.11 延伸阅读 411
第17章 使用期物处理并发 416
17.1 示例:网络下载的三种风格 416
17.2 阻塞型 I/O 和 GIL 424
17.3 使用 concurrent.futures 模块启动进程 424
17.4 实验 Executor.map 方法 426
17.5 显示下载进度并处理错误 429
17.6 本章小结 437
17.7 延伸阅读 438
第18章 使用 asyncio 包处理并发 442
18.1 线程与协程对比 443
18.2 使用 asyncio 和 aiohttp 包下载 450
18.3 避免阻塞型调用 454
18.4 改进 asyncio 下载脚本 456
18.5 从回调到期物和协程 462
18.6 使用 asyncio 包编写服务器 466
18.7 本章小结 475
18.8 延伸阅读 476
第六部分 元编程
第19章 动态属性和特性 482
19.1 使用动态属性转换数据 483
19.2 使用特性验证属性 498
19.3 特性全解析 500
19.4 定义一个特性工厂函数 504
19.5 处理属性删除操作 506
19.6 处理属性的重要属性和函数 507
19.7 本章小结 510
19.8 延伸阅读 510
第20章 属性描述符 514
20.1 描述符示例:验证属性 514
20.2 覆盖型与非覆盖型描述符对比 526
20.3 方法是描述符 531
20.4 描述符用法建议 533
20.5 描述符的文档字符串和覆盖删除操作 534
20.6 本章小结 535
20.7 延伸阅读 536
第21章 类元编程 538
21.1 类工厂函数 539
21.2 定制描述符的类装饰器 541
21.3 导入时和运行时比较 543
21.4 元类基础知识 547
21.5 定制描述符的元类 552
21.6 元类的特殊方法 __prepare__ 554
21.7 类作为对象 556
21.8 本章小结 557
21.9 延伸阅读 557
结语 560
附录 A 辅助脚本 563
Python 术语表 588
作者简介 600
关于封面 600
当我第一眼看到《流畅的Python》这个书名时,我脑海里闪过的第一个念头是:“这正是我想要的!”。我从事Python开发已经有一段时间了,虽然已经能够完成很多任务,但在代码的“精炼”和“高效”方面,总觉得还有很大的提升空间。很多时候,写出来的代码虽然能运行,但总感觉不够“地道”,不够“Pythonic”。这本书听起来就像是一个能够指引我走向更高境界的指南针。我希望能从中学习到如何写出更简洁、更具表达力的代码,如何更有效地利用Python的各种高级特性,比如生成器、装饰器、元类等等,让我的代码像一部流畅的交响乐,而非杂乱无章的噪音。我也期待书中能有一些关于性能优化的技巧和最佳实践,让我能够写出不仅好看,而且运行速度飞快的Python程序。
评分《流畅的Python》这个名字,听起来就充满了“智慧”和“洞察力”。我一直认为,学习一门编程语言,不仅仅是掌握语法和API,更重要的是理解它的设计理念和精髓。《流畅的Python》让我看到了作者在这方面的深厚功力。我希望这本书能带我深入Python的“心脏”,去理解那些让它如此强大的底层机制。我特别想了解Python的解释器是如何工作的?它的内存管理机制有什么特别之处?如何才能写出真正符合Python哲学、既易于理解又高效的代码?我期待这本书能为我打开一扇新的大门,让我能够以一种全新的方式看待Python,从而在我的实际开发中,能够写出更优雅、更具前瞻性的代码。
评分这本书的书名,《流畅的Python》,真是直击人心。我一直在寻找能够帮助我把Python技能提升到一个新层次的资源,而“流畅”这个词,正是我对理想Python编程状态的追求。我希望这本书能够帮我打通任督二脉,让我能够轻松自如地运用Python解决各种复杂问题,而不仅仅是完成一些基础任务。我特别期待书中能够讲解一些我平时觉得难以掌握或者容易遗忘的Python高级特性,比如如何巧妙地利用列表推导式和生成器表达式来简化代码,如何使用装饰器来增加函数的功能,又或者如何通过元编程来动态地创建和修改类。我希望通过阅读这本书,我能够摆脱“堆砌”代码的习惯,写出真正精炼、高效、并且具有高度可读性的Python程序。
评分这本书的名字,怎么说呢,它点燃了我对Python的“探索欲”。我一直觉得Python的魅力远不止于它的易学易用,它背后一定隐藏着更深层次的设计哲学和强大功能。就像一个技艺精湛的手工艺人,总能用最简单的工具创造出令人惊叹的作品,《流畅的Python》听起来就像是揭示这些“秘密”的宝典。我特别好奇书中会如何剖析Python的那些“魔法”——那些看起来理所当然,但细究起来却奥妙无穷的特性。比如,如何更好地利用Python的内存管理?如何构建高性能的并发程序?或者,在进行大规模数据处理时,哪些库和技术能最大程度地提升效率?我希望这本书能把我从“表面玩家”提升到“深度使用者”,让我能够真正驾驭Python这门语言,而不是被它牵着鼻子走。我期待这本书能提供一些“黑科技”,让我写出来的代码,在性能和可维护性上都达到一个新的高度。
评分《流畅的Python》这本书,我从书名上就感受到了它的“有料”。“流畅”这两个字,让我脑海中立刻浮现出的是那种行云流水般的编程体验,代码像歌唱一样自然,逻辑清晰得像一眼就能望到底的河流。我尤其期待它能在我一直以来写Python时遇到的那些“卡顿”和“磕磕绊绊”的地方,提供一种全新的视角和解决方案。很多时候,我们学习一门语言,尤其是像Python这样广泛应用的语言,很容易陷入“能用就行”的误区,而忽略了代码的优雅和效率。我相信这本书会帮助我突破这个瓶颈,让我能够更深入地理解Python的内在机制,从而写出更具可读性、更高效、更符合Pythonic风格的代码。特别是对于那些我平时模糊不清的概念,比如一些底层的实现原理,或者是在特定场景下最优的处理方式,我希望这本书能给我醍醐灌顶的指引。读完之后,我希望自己能从一个“知道如何写Python”的程序员,蜕变成一个“懂得如何优雅地写Python”的开发者。
评分好薄一本,想写一个爬虫,爬一点大姐姐。
评分京东质量可以,值得信赖。。
评分给一些准备转行或0基础开始学Python的一些参考:
评分还不错,京东物流一如既往的快,书也没有破损,纸的质量不错
评分味道有点大,不过不像盗版书
评分无论是快递服务和售后服务都挺不错的,重要的是商品价格和质量整体来说都还不错,促销活动时还是比较优惠的。只是,近两年的活动似乎没有前几年的活动优惠力度大了。免运费门槛年年提升。什么加重费等。还有,现在满减券也十分有限,不是那么好领取,经常看着整点也抢不到券,这一点比较郁闷。所以想买某样东西时,看着它在活动满减,但自己却老是抢不到券,只能被迫放弃了!
评分Thank you very much for the excellent service provided by Jingdong mall, and it is very good to do in warehouse management, logistics, distribution and so on. Delivery in a timely manner, distribution staff is also very enthusiastic, and sometimes inconvenient to receive the time, but also arranged for time to be delivered. At the same time in the mall management Jingdong customer service is also very good, to solve customer suffering, overcome all difficulties. Give us a very good shopping experience
评分全面涵盖当今应用开发中的众多领域 为中级Python开发人员提供实践方法 涵盖大量实用的代码案例 每章末尾的习题有助于巩固所学知识
评分这本书确实不错,因为没人收货,等了一段时间还涨价了
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.coffeedeals.club All Rights Reserved. 静流书站 版权所有