新書推薦:

《
人格类型:我们何以不同(荣格人格类型理论——人格类型是一种人们了解自己、了解人际困扰的方法)
》
售價:HK$
64.9

《
索恩丛书·宗教与资本主义的兴起
》
售價:HK$
141.9

《
遇见 高云
》
售價:HK$
85.8

《
日本首都圈空间结构与协同发展
》
售價:HK$
140.8

《
《欧罗巴的悲剧:经济危机、绥靖政策与第二次世界大战的爆发》
》
售價:HK$
83.6

《
中药炮制学科发展集萃
》
售價:HK$
239.8

《
君士坦丁堡深仇400年:俄土战争(1877—1878)(全2册)
》
售價:HK$
226.6

《
城市文明蓝皮书:全球城市文明发展报告(2024-2025)
》
售價:HK$
140.8
|
編輯推薦: |
本书并非关于Python知识的一站式全面指南,而是以Python的核心编程范式为主线,从生成器、推导式等基础工具切入,逐步深入到装饰器、魔术方法等高级特性,为读者打开面向对象编程的全新视角,旨在传授Python相关技术、模式和工具,让读者的Python编程技能实现质的飞跃。书中精心设计的实战案例贯穿始终:从文本处理中的生成器组合,到工厂模式在框架设计中的应用,再到日志系统的企业级配置,每个章节都将理论与实践完美结合。具体内容包括如何使用生成器进行扩展、如何使用推导式创建集合,以及高级函数、装饰器、异常和错误、类和对象、自动化测试、模块管理、Python日志等。
|
內容簡介: |
本书并不提供基础知识的重复训练,而是为已有Python基础的开发者提供认知升维的跳板。通过掌握这些关键原理,开发者将获得举一反三的思维能力,在复杂项目开发中快速构建高效、优雅且可扩展的解决方案,真正实现从熟练到精通的质变跃迁。本书创新性地聚焦Python语言的本质规律,通过“二八定律”提炼出5%的核心知识,构建起高效学习的黄金路径。通过阅读本书,读者将系统掌握:如何利用高阶函数抽象编写强大的代码;如何使用生成器设计模式让Python代码更加健壮且具备可扩展性;理解Python推导式,明白如何构建更复杂的推导式结构,以及推导式与生成器的关联;利用装饰器进行元编程,实现强大的抽象,高效复用代码;利用Python异常处理机制高效进行错误调试;Python面向对象模型中的高级面向对象编程技术;如何借助测试驱动开发更快、更好地编写代码,进入编程“心流”状态;高效组织模块、基础和高级Python日志,以及更多内容。
|
關於作者: |
Aaron Maxwell是一名软件工程师,也是一位Python技术爱好者。他在硅谷的工程团队中工作了十年,积累了大量后端工程、数据科学与机器学习、测试自动化基础设施、开发运维(DevOps)与网站可靠性工程(SRE)、云基础设施、营销自动化等方面的实践经验,并且能用多种编程语言进行编码。他为全球一万多名技术专业人士讲授过高级Python课程。
|
目錄:
|
目录前言1第1章 使用生成器进行扩展91.1 Python中的迭代91.2 生成器函数131.2.1 继续执行next()141.2.2 转换为生成器函数161.2.3 生成器的必要性171.3 生成器模式和可扩展组合性181.3.1 文本行转字典201.3.2可组合接口211.3.3 扇出221.3.4 扇入231.4 Python中的迭代器261.5 迭代器协议271.6 小结32第2章 使用推导式创建集合332.1 列表推导式342.2 格式化以提高可读性(及更多)362.3 多数据源和过滤器372.3.1 独立语句392.3.2 多过滤器402.4 推导式与生成器422.5 字典、集合和元组452.6 小结48第3章 高级函数493.1 接收和传递可变参数493.1.1 参数拆包513.1.2 可变关键字参数523.1.3 关键字拆包543.1.4 结合位置参数与关键字参数553.2 函数即对象563.3 Python的键函数603.4 小结62第4章 装饰器634.1 基本的装饰器644.1.1 通用装饰器664.1.2 装饰方法674.2 装饰器中的数据694.2.1 访问内部数据734.2.2 非局部装饰器状态744.3 接收参数的装饰器774.4 类装饰器804.4.1 实现类装饰器814.4.2 类装饰器的优势824.5 应用于类的装饰器844.6 小结87第5章 异常和错误885.1 基本概念885.1.1 处理异常895.1.2 使用异常控制代码流915.1.3 finally代码块925.1.4 字典异常945.2 异常即对象955.3 抛出异常975.4 捕获并重新抛出异常1005.5 棘手的Python反模式1025.6 小结106第6章 类和对象:进阶1076.1 特性1076.1.1 特性模式1106.1.2 验证1116.1.3 属性与重构1126.2 工厂模式1156.2.1 替代构造函数:简单工厂模式1156.2.2 动态类型:工厂方法模式1186.3 观察者模式1216.3.1 简易观察者1226.3.2 利用Python优化观察者模式1246.3.3 多频道1286.4 魔术方法1306.5 魔术方法进阶1356.6 小结138第7章 自动化测试1397.1 测试驱动开发1407.2 单元测试和简单断言1417.3 固定和通用测试设置1467.4 断言异常1487.5 使用子测试1497.6 小结153第8章 模块管理1558.1 创建模块1558.2 创建独立的库1608.3 多文件模块1628.4 导入语法和版本控制1658.5 嵌套子模块结构1678.6 反模式警告1708.7 导入的副作用1738.8 小结176第9章 Python日志1779.1 基本接口1779.1.1 日志级别1789.1.2 日志级别的作用1809.2 配置基本接口1809.3 传递参数1839.4 日志记录器1859.5 日志目的地:处理器和流1869.6 向多个目的地记录日志1899.7 记录布局与格式化1919.8 小结192后记193
|
內容試閱:
|
前言Python 已成为现代计算领域的通用语言。本书的核心观点是,Python 是目前最 重要的编程语言,掌握 Python 可带来巨大的收益。本书旨在传授 Python 相关技术、模式和工具,让你的 Python 编程技能实现质的飞跃。 如果你接触过 Python,本书将极大地提升你的编程能力和效率,同时还能大幅压缩调试代码的时间。目标读者如果你具有 Python 基础,并且掌握了编程入门内容,本书正是为你量身而写的。本书也适合想要学习更高级技术和方法的读者阅读,让你用 Python 实现更多目标。 本书不适合浅尝辄止的 Python 学习者。Python 很重要,掌握 Python 回报巨大。本书也不适合没有抱负的人。在撰写本书时,笔者希望读者能打造一份令自己自豪的职业,从事具有积极影响力的工作。 此外,本书不适合思维僵化的人。优秀工程师和“普通”程序员的区别在于, 前者具有判断清晰、思维新颖、洞察细微的特点。学习的两个层面学无止境。读者真正想要的是培养新能力,因此本书包括两个学习层面。 首先是信息层面。信息层面包括阅读内容或者聆听后记住。将事实、观点和其他信息存入脑海,以便日后回忆、复述给其他人,或用于逻辑推理。信息很重要,是学习的基础。其次是更深层面的学习,即能力层面。当编写代码时,可以实现以前达不到的需求。 这两个层面都很重要,但能力才是真正的关键所在。信息可能具有欺骗性。你感觉自己理解了知识,但在真正实践时,却常常盯着空白的编辑器无从下手。 你肯定有过类似的经历,每个程序员都不例外。 其实,你只是在信息层面进行了学习,尚未达到能力层面。当你真正达到能力层面时,你所需要的信息会自然而然地在脑海中涌现,就像思考本身一样自然。大多数情况下,读书或看视频只能在信息层面传授知识。但本书旨在通过多种方式改变这种情况。本书编写方式有两个存在已久的问题。 问题 1:要学的东西太多。 问题 2:由于技术和文化飞速变革,社会发展导致人们用于专注学习的时间和精力大幅减少。 这两个问题极有可能是人们痛苦的根源。但有一条出路,即所谓的第一性原理。在人类活动的任何领域,包括 Python 编程,都存在基本概念,概念是一切的基础。概念涉及重要的差异、抽象概念和思维模型。当你掌握了第一性原理,就会发现自己能穿透繁杂信息,更轻松地开展工作。第一性原理就像加速器,为人们提供了解决诸多问题的工具、资源和能力。实际上,这符合“95/5”法则,你只需专注学习其中 5% 的知识,其余知识的学习 就像多米诺骨牌一样,迎刃而解。 这 5% 的知识就是我们所说的 Python 第一性原理,也是本书的核心所在。 因此,本书在内容上会有所取舍,并非关于 Python 知识的一站式全面指南。此外,本书基于实际开发经验(来自工程师团队的项目实践),对实践经验进行了总结。代码可维护性、稳健性和可读性比其他任何方面都重要。在利用强大的抽象概 念与开发团队成员都易于理解的代码之间,本书进行了权衡。在整本书中,笔者非常关注软件开发中的认知层面。为了编写出让所有人都能轻松、快速且准确理解的代码,变量和函数命名是关键的一环。但命名远不止于语法层面,还涉及使用哪些语言特性和库资源,以及不使用哪些。 本书有意控制了篇幅,毕竟要学习的内容已经很多了。本书聚焦于最有价值的内容,目标是让读者受益多年。 可调用对象的约定 本书采用了一种可能会引起争议的写作约定。当在表述中提及标识符名 称时,笔者使用等宽字体。所以变量“x”会写成 x,类“Point”会写成 Point,等等。 争议之处在于,当提及函数或方法时,笔者会在标识符名称后附加一对括 号。所以函数“compute”会写成 compute(),而非 compute。即使调用该函数时必须传入参数,也会这样写。“()”本质上是一种注释,表明该标识符是可调用的。以笔者教授和撰写高级Python内容的经验来看,这样有助于理解,所以本书始终遵循这一约定。本书未涉及的内容以下是本书省略的主题:? 标准库之外的内容。仅仅是 Python 及其内置功能,就包含足够的深度。? 类型注释。本书付梓之时,类型注释仍未完全敲定。尽管类型注释对部分人很重要,但使用尚不普遍。? 数据类。关于数据类的教程数不胜数,第 6 章已经是本书篇幅最长的章。? 并发编程。大多数 Python 程序都是单线程的。要全面讲解线程、多进程和异步,本书篇幅可能翻倍。? 任何依赖特定 Python 版本的内容。不过,最佳的 Python 模式和策略往往不受版本影响。本书专注的正是编程设计模式和策略。? 不常用的特性,如仅关键字参数、仅位置参数、条件(三元)表达式、模式匹配等。这些特性虽然有用,但更适合其他图书。? 人们喜欢的其他主题(肯定会有这种情况)。 本书所涵盖的内容涉及 Python 的关键知识点,其中许多并非新内容,却被严重低估和误解,但实际上这些内容对所有 Python 开发者都极具价值。如果读者最喜欢的 Python 主题不在本书中,笔者引用法国诗人Paul Valéry 的名言:“艺术作品永远不会完成,只会被放弃。” 笔者投入了近十年,本书才创作而成,相信对一些读者而言,它是极有价值的。充分利用本书最终,能否将本书的知识转化为能力层面的学习成果,取决于读者自身。读者 一定要付诸实践,才能真正掌握书中内容。 为提供助力,笔者为每一章都设计了编程练习,还准备了其他有趣的学习资源, 这些都是本书读者专享的。若想获取资源,以及接收未来新书发布的邮件通知, 可访问https://powerfulpython.com/register,并按说明操作。 如果想了解专业培训,可访问 https://powerfulpython.com,浏览网站资源。如果读 者对本书有反馈、勘误或对未来版本的建议,请发送至 aaron@powerfulpython. com。排版约定本书使用以下排版约定:斜体(Italic) 表示新的术语、URL、电子邮件地址、文件名和文件扩展名。等宽字体(Constant width) 用于程序清单,以及段落中的程序元素,例如变量名、函数名、数据库、 数 据类型、环境变量、语句以及关键字。等宽粗体(Constant width bold) 表示应由用户直接输入的命令或其他文本。等宽斜体(Constant width italic) 表示应由用户提供的值或由上下文确定的值替换的文本。 该图示表示提示或建议。使用代码示例这里的代码是为了帮助你更好地理解本书的内容。通常,可以在程序或文档中 使用本书中的代码,而不需要联系 O’Reilly 获得许可,除非需要大段地复制代 码。例如,使用本书中所提供的几个代码片段来编写一个程序不需要得到我们 的许可,但销售或发布 O’Reilly 的示例代码则需要获得许可。引用本书的示例 代码来回答问题也不需要许可,将本书中的很大一部分示例代码放到自己的产品文档中则需要获得许可。 非常欢迎读者使用本书中的代码,希望(但不强制)注明出处。注明出处时包含书名、作者、出版社和 ISBN,例如:Powerful Python:Patterns and Strategies with Modern Python,作者 Aaron Maxwell,由 O’Reilly 出版,书号 978-1-098- 17570-2。如果读者觉得对示例代码的使用超出了上面所给出的许可范围,欢迎通过 permissions@oreilly.com 联系我们。O’Reilly 在线学习平台(O’Reilly Online Learning)40 多年来,O’Reilly Media 致力于提供技术和商业培训、 知识和卓越见解,来帮助众多公司取得成功。 我们拥有独一无二的专家和革新者组成的庞大网络,他们通过图书、文章、会 议和我们的在线学习平台分享他们的知识和经验。O’Reilly 的在线学习平台允许 你按需访问现场培训课程、深入的学习路径、交互式编程环境,以及 O’Reilly 和 200 多家其他出版商提供的大量文本和视频资源。有关的更多信息,请访问 http://oreilly.com。如何联系我们对于本书,如果有任何意见或疑问,请按照以下地址联系本书出版商。 美国: O’Reilly Media,Inc. 1005 Gravenstein Highway North Sebastopol,CA 95472 中国: 北京市西城区西直门南大街 2 号成铭大厦 C 座 807 室(100035) 奥莱利技术咨询(北京)有限公司 要询问技术问题或对本书提出建议,请发送电子邮件至 errata@oreilly.com.cn。 本书配套网站 https://oreil.ly/powerful_python 上列出了勘误表、示例以及其他信息。 关于书籍和课程的新闻和信息,请访问我们的网站 http://oreilly.com。我们在 Facebook 上的地址:http://facebook.com/oreilly。我们在 LinkedIn 上的地址:http://linkedin.com/oreilly-media。我们在 YouTube 上的地址:http://www.youtube.com/oreillymedia。致谢本书的创作历时近十年,我要感谢很多人。首先,我要感谢数千名读过本书早期自费出版版本的读者,其中包括数百名参 加过“ Python 训练营”的学员。从第一天起,大家就提出了许多精彩的问题与评论,并指出了错误,帮助我不断完善本书。 感谢出色的 O’Reilly 团队。如果你正在考虑出版图书,强烈推荐 O’Reilly。特 别感谢策划编辑 Virginia Wilson、制作编辑 Aleeya Rahman ;审稿编辑 Sarah Grey 和 Helena Stirling 检查出许多书稿错误;Brian Guerin 促成了本书的启动; Yasmina Greco 精心组织了 O’Reilly 的线下培训课程,为本书提供了丰富的素 材。对于没能提及的人,或是在幕后默默付出的工作人员,我对他们深感歉意。 技术审稿人也贡献巨大。Peter Norvig 对最后一版自费出版的图书提出了深刻的反馈,极大地提升了本书的质量;Rodrigo Gir?o Serr?o 在 Python 语言方面卓越的专业知识,避免了书中许多可能出现的严重错误;Jess Males 改进了许多文字,让本书更易理解;Han Qi 为本书挑出了许多错误。感谢所有人尽其所能,协助创作本书。
|
|