《Python编程之美:最佳实践指南》 (Python) (Z-Library)

Author: Unknown Author

技术

本书是Python用户的一本百科式学习指南,由Python社区数百名成员协作奉献。全书内容分为三大部分。第1部分是关于如何配置和使用Python编辑工具的;第2部分深入讲解地道Python风格的代码范例;第3部分研究Python社区常用的一些代码库。本书适合有一定Python基础的人员学习,帮助你迅速从小工修炼成专家,编写出高质量的代码!

📄 File Format: PDF
💾 File Size: 3.4 MB
291
Views
145
Downloads
0.00
Total Donations

📄 Text Preview (First 20 pages)

ℹ️

Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

📄 Page 1
C M Y CM MY CY CMY K 34757fy.pdf 1 2018/8/13 15:50:02
📄 Page 2
内 容 简 介 本书是Python用户的一本百科式学习指南,由Python社区数百名成员协作奉献。 全书内容分为三大部分。第1部分是关于如何配置和使用Python编辑工具的;第2部分深入 讲解地道Python风格的代码范例;第3部分研究Python社区常用的一些代码库。 本书适合有一定Python基础的人员学习,帮助你迅速从小工修炼成专家,编写出高质量的 代码! ©2016 by Kenneth Reitz, Tanya Schlusser Simplified Chinese Edition, jointly published by O’Reilly Media, Inc. and Publishing House of Electronics Industry, 2018. Authorized translation of the English edition, 2016 O’Reilly Media, Inc., the owner of all rights to publish and sell the same. All rights reserved including the rights of reproduction in whole or in part in any form. 本书简体中文版专有出版权由O’Reilly Media, Inc. 授予电子工业出版社。未经许可,不得 以任何方式复制或抄袭本书的任何部分。专有出版权受法律保护。 版权贸易合同登记号 图字:01-2016-9669 图书在版编目(CIP)数据 Python 编程之美:最佳实践指南 /(美)肯尼思·赖茨(Kenneth Reitz),(美)坦尼娅·胥 卢瑟 (Tanya Schlusser)著;夏永锋,廖邦杰译 . —北京:电子工业出版社,2018.9 书名原文:The Hitchhiker’s Guide to Python ISBN 978-7-121-34757-3 Ⅰ . ① P… Ⅱ . ①肯… ②坦… ③夏… ④廖… Ⅲ . ①软件工具-程序设计 Ⅳ . ① TP311.561 中国版本图书馆 CIP 数据核字 (2018) 第 161121 号 策划编辑:刘 皎 责任编辑:汪达文 封面设计:Randy Comer 张 健 印 刷: 装 订: 出版发行:电子工业出版社 北京市海淀区万寿路173信箱 邮编:100036 开 本:787×980 1/16 印张:20 字数:460千字 版 次:2018年9月第1版 印 次:2018年9月第1次印刷 定 价:89.00元 凡所购买电子工业出版社图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发 行部联系,联系及邮购电话:(010)88254888,88258888。 质量投诉请发邮件至zlts@phei.com.cn,盗版侵权举报请发邮件至dbqq@phei.com.cn。 本书咨询联系方式:010-51260888-819,faq@phei.com.cn。
📄 Page 3
O’Reilly Media, Inc.介绍 O’Reilly Media 通过图书、杂志、在线服务、调查研究和会议等方式传播创新知识。自 1978年开始,O’Reilly一直都是前沿发展的见证者和推动者。超级极客们正在开创着未来, 而我们关注真正重要的技术趋势——通过放大那些“细微的信号”来刺激社会对新科技 的应用。作为技术社区中活跃的参与者,O’Reilly 的发展充满了对创新的倡导、创造和 发扬光大。 O’Reilly 为软件开发人员带来革命性的“动物书”;创建第一个商业网站(GNN);组 织了影响深远的开放源代码峰会,以至于开源软件运动以此命名;创立了 Make 杂志, 从而成为 DIY 革命的主要先锋;公司一如既往地通过多种形式缔结信息与人的纽带。 O’Reilly 的会议和峰会集聚了众多超级极客和高瞻远瞩的商业领袖,共同描绘出开创新 产业的革命性思想。作为技术人士获取信息的选择,O’Reilly 现在还将先锋专家的知识 传递给普通的计算机用户。无论是通过书籍出版、在线服务或者面授课程,每一项O’Reilly 的产品都反映了公司不可动摇的理念——信息是激发创新的力量。 业界评论 “O’Reilly Radar 博客有口皆碑。” ——Wired “O’Reilly 凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业 务。” ——Business 2.0 “O’Reilly Conference 是聚集关键思想领袖的绝对典范。” ——CRN “一本 O’Reilly 的书就代表一个有用、有前途、需要学习的主题。” ——Irish Times “Tim 是位特立独行的商人,他不光放眼于最长远、最广阔的视野并且切实地按照 Yogi Berra 的建议去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顾过去 Tim 似乎每一次都选择了小路,而且有几次都是一闪即逝的机会,尽管大路也不错。” ——Linux Journal
📄 Page 4
推荐序一 我从 2011 年开始学习和使用 Python,印象里那个时候掌握 Python 语言基本是 BAT 等大 型企业岗位要求里面的附加条件。由于 Python 语法简单很容易上手,再加上极好的代码 可读性、丰富和强大的数据结构和内置标准库、良好的社区生态能极大地提升开发效率 等优势,我能清晰感受到这些年 Python 越来越受到国内企业和开发者的青睐,而据我所 知国内外知名的大型互联网公司或多或少都在使用 Python,甚至很多公司的主要技术栈 是 Python。 作为一个 Python 开发者,我非常幸运。因为本书的社区开源项目“The Hitchhiker’s Guide to Python!”也是 2011 年由 Kenneth Reitz 发起的,虽然我 2012 年才知道这个学 习指南,但是必须承认书中的内容对我学习和实践 Python 有非常大的帮助,直到现在我 还是会时常翻阅本书。 和我学习 Python 时相比,现在的环境实在好得太多了:有很多 Python 书籍、网上资源、 国外的视频课程等,但是其中由一线开发者编写、与实践结合、代码能称为“Pythonic” 的书籍却凤毛麟角,而这本《Python 编程之美:最佳实践指南》就是这样的一本书。 它是一本 Python 安装、配置和使用的最佳实践手册,涉及开发环境和部署、编写符合 Pythonic 品味的代码、各应用场景下主流的 Python 解决方案、学习资源推荐等多个方面, 有足够的广度也有合适的深度。这是我非常喜欢的一种学习指南的写作风格,如果有最 佳实践会直接告诉你应该这么做,不应该怎么做,或者会告诉你这个应用场景下都有哪 些技术选型,它们各自的优缺点及选择建议。这本书会告诉你怎么用,但是更多的是引路, 如果你希望深入学习还是要自己搜索相关资源。 我认为其中最有价值的内容之一是教你编写高质量 Python 代码这部分,书中有非常多的 场景对应实践及建议,尤其是作者对“Python 之禅”的理解非常透彻,作者的理解和经 验对于初学者养成良好的编程习惯,以及培养“Pythonic”品味是非常有意义的。 还有一个章节是教你阅读高质量的代码。成为一名优秀程序员的秘诀之一就是阅读、理 解其他优质项目中好的代码,吸收并应用到自己的工作中来。书中列的几个开源项目都 是质量非常高的开源项目,在这个章节中作者把自己阅读代码的思路、方法和技巧分享 出来,告诉你为什么这么设计,这么做的优点是什么等,而不是只看代码。另外也清晰 iv
📄 Page 5
推荐序一 | v 地把项目结构图呈现出来,有极强的学习价值。 对初学者来说这是一本极佳的学习指南,但是也建议每个 Python 开发者都读这本书!最 后我也期望国内会有越来越多的一线开发者写技术图书,分享自己使用 Python 的相关经 验和技巧,让优质的 Python 书籍越来越多! 董伟明 豆瓣高级产品开发工程师、《Python Web 开发实战》作者
📄 Page 6
推荐序二 这本书的关键词是“实践”和“指南”。 我曾经被多次拷问: y “已经学习了 Python 基础知识,后续应该做什么呢?” y “Python 中有那么多模块和包,我应该选择使用哪一个呢?” y “什么样的代码才是所谓‘优雅’的呢?” y “怎样提高自己的编程水平?” y “我不会阅读代码,怎么办?” y …… 对于初学者而言,遇到上述问题很正常,关键是怎么解决问题。 《Python 编程之美:最佳实践指南》一书帮助开发者破解了一些常见疑惑,提供了具有 实践价值的指南。 编程,是一个实践性很强的工作。学习了某种语言的基本知识之后,能够写出一些程序, 但是否写得好,则是另外一个话题了,况且,实践中也很难确立“好”的标准,如何才 能写得“更好”? 一要多写。业精于勤,荒于嬉。不论是各种研究结果还是个人经验,都认同这样的结论: 实践性强的技能都要不断地,甚至是重复地做。所以,我经常唠叨“(代)码不离手”, 有的人理解、有的人嫌弃、有的人漠视,至少我观察到身边的这三类人在几年之后,他 们的“某些属性”的“值”差别不小。 二要思考。行成于思,毁于随。韩愈老先生的两句话,放到这里都很适合。有开发者, 写代码多年,但习惯以“时间紧、任务重、给钱少”为思考原点,拒绝主动优化代码—— 通常老板也不给时间优化代码,你手不在敲代码,他就在亏钱。结果,本来是以智力活 动为主的“开发者”,在主客观因素的裹挟下成了以机械操作为主的“搬砖工”,因此慨 叹“程序员是吃青春饭的”。所幸,在本书中有“编写高质量的代码”“阅读高质量的代 码”“交付高质量的代码”三方面的内容,为我们提供了一个“思考”的范例。高质量的 代码绝非一朝一夕能够实现的,需要长期积淀。如此,“年龄”就不再是开发者的魔障了。 vi
📄 Page 7
推荐序二 | vii 三要学习。学而不思则罔,思而不学则殆。学习的方式有多种,“读书”则是一种重要 的方式,相比“碎片化”学习的一知半解,完整地读一本书则会让开发者在思维、知识、 技能等维度有系统地提升。比如本书中的“高质量的代码”部分不仅仅是实践经验的总结, 也应该是开发者的行动指南;而在第三部分“场景化指南”中,则为开发者较为系统地 列举了各种应用场景中会用到的工具——名为“指南”,很恰当。 就个人来看,本书比较适合“入门”之后阅读,读者可以根据具体的应用场景循“指南” 而深入。 齐伟 “跟老齐学 Python”系列图书作者
📄 Page 8
viii 推荐序三 判断一门编程语言是不是流行,可以观察该语言相关图书的多寡,虽然市面上已有众多 Python 相关的书籍,但我仍有充分的理由来推荐本书,原因如下。 第一,本书的作者之一 Kenneth Reitz 先生是大名鼎鼎的 Requests 库的作者,仅凭此一点, 本书的质量就有了充分的保证。 第二,根据本人多年从事软件开发和 Python 培训的经验,很多通过自学或培训、刚刚转 行成功的程序员,虽然学会了用写代码来解决具体问题,但对下一步的学习和成长方向 比较迷茫。如果在这个阶段能在公司遇到一位好的导师,那么三生有幸,他会引导你快 速地成长,独立上手开发项目。但是,如果没有遇到这样的导师,又该怎么办呢?这本 《Python 编程之美:最佳实践指南》刚好可以履行起这样一位导师的职责:书中丰富的 内容、详尽的指导能让你快速补上运用 Python 开发项目的知识短板。 第三,本书用两章的篇幅着重阐述了如何编写、阅读高质量的代码,这对于每一位 Python 开发人员都是极有价值的。 在第 4 章“编写高质量的代码”中,作者从代码风格、组织好项目的结构、测试代码、文档、 日志等方面全面讲解如何写出高质量的代码。刚踏入软件开发的朋友们,如果还没有养 成写测试、日志的习惯,完全可以从这里完整地补充相关知识点。 在第 5 章“阅读高质量的代码”中,按照第 4 章编写高质量的代码的原则,引导读者阅 读 6 个优秀的项目(HowDoI、Diamond、Tablib、Requests、Werkzeug、Flask),学习 开源项目的架构设计、书写 Python 风格的代码——小到命名风格、大到实现特定需求的 数据结构和算法等。 本书还简明扼要地阐述了软件交付、Web 应用、持续集成、分布式系统等方面的知识, 虽然不是特别详细,但足以引导读者了解 Python 项目开发的方方面面,对 Python 的开 发过程有全局、清晰的认识。此外,读者还可以借助本书提供的资源链接,运用搜素引 擎来拓展自己的知识面。 综上,我认为本书值得每一位初级程序员拥有,如果读者能把从中学到的知识娴熟地应 用到日常开发中,那么个人成长的价值就远远超出本书微薄的定价了。 黄哥 知乎专栏“通过 Python 学会编程”作者
📄 Page 9
ix 好评袭来 本书是 Python 开发者的实操指引,Kenneth Reitz 出品,必属精品。 ——刘志军 公众号“Python 之禅”出品人 最近十年,人工智能、金融科技等领域发展迅速,Python 在这些领域中的应用取得了 巨大的成功。本书追根溯源,从代码风格、设计哲学、开源项目等各方面为我们详述了 Python 强大的生态系统,书名中的“最佳实践指南”名副其实。 ——阿橙 公众号“Python 中文社区”主编 本书不仅仅是一本 Python 教程,更多的是通过一些优秀项目源码,向读者阐释了如何写 出更优雅的 Python 代码……有助于 Python 学习者完成向 Pythonic 的转变。 ——Crossin 公众号“Crossin 的编程教室”作者、码课创始人 《Python 编程之美:最佳实践指南》不仅仅是一本介绍 Python 代码编写最佳实践的书籍, 更是一本 Python 开发相关的百科全书。书中介绍了 Python 在各大操作系统上的安装方 法、各种用于 Python 开发的文本编辑器和集成开发环境(IDE),教你以“Python 之禅” 为指导书写高质量的 Python 代码、阅读高质量的 Python 第三方库源码。除了代码编写, 书中还介绍了一系列与 Python 开发工作相关的高效工具,例如持续集成工具、系统管 理工具、代码交付工具和发布工具等。这本书对于已有一定 Python 基础的人来说是一 本极佳的进阶教材和参考资料。应用书中介绍的最佳实践能够帮助我们编写更加优雅、 Pythonic 的代码。学习书中介绍的各种工具能够帮助我们提高代码从开发到交付再到发 布的效率。学习一门编程语言,从入门到进阶的一条捷径就是学习前辈专家的开发经验, 而这本书正是这些专家经验的总结。 ——杨学光 Django 中文社区发起人
📄 Page 10
x | 好评袭来 《Python 编程之美:最佳实践指南》详略得当,一定会让你深入了解 Python 大世界。 ——Raymond Hettinger 杰出的 Python 核心开发者 本书是 Python 开发者不可或缺的图书。对于新手来说,它是一份记录社区约定和最佳实 践的学习资源,其价值不可估量。社区内大量专家一起精诚协作,将开源的精华结集出版, 与世界同仁共享 Python 编程的一流理念和实践。 ——Eric Holscher Read the Docs 公司(readthedocs.org)的联合创始人 这真是一本令人惊叹的好书!它并不是教授 Python 语言本身的,而是假定你已经有了一 定的编程基础。它阐述的是编程相关的知识点:何时、何地、怎样运用 Python,如何使 用各类 Python 工具……这使得你可以高效地编写代码、运维程序,并与其他程序优雅交 互。 我从中学到了太多的东西,尤其是那些我以前从来不知道自己不知道的东西,而且发现 它们竟然是如此的有用! 书中所有的资源都提供了链接地址。如果你喜欢写代码并且用专业的方式呈现这些代码 (毕竟从设计开始它们就是为这样的目的而诞生的),那么这本书是你的必读之作! ——读者 来自 amazon.com
📄 Page 11
xi 译者序 从毕业至今,我在互联网行业从事软件研发工作已将近五年。这五年间,我做过后端开发、 前端开发、大数据处理等,使用过的编程语言包括 Python、PHP、Go、Java、JavaScript 等。 虽说编程语言各异,但是我使用它们来写各种项目的代码始终坚持两点:代码可读性和 自解释性 / 自文档性(self-documentation)。这很大程度上应该是受到 Python 语言设计 哲学的影响——追求简单、易读、易懂的代码。 很多人可能会认为这两点其实均可归结为代码可读性一点,但我想做点区分。代码可读 性突出对代码阅读者视觉上的影响,即在视觉效果上是否存在对阅读者不必要的理解干 扰,比如必要的空行、变量定义与使用之间的距离、函数体 / 逻辑分支是否过长、逻辑 表达是否直观等。可读性高的代码通常都非常漂亮,令人赏心悦目。自解释性代码则更 侧重语义层面,比如变量名称、函数名称、类名是否恰当,函数、方法、API 职责是否 单一,工程目录结构、包、模块拆分是否符合“高内聚、低耦合”原则等。写代码以这 两点为原则,可以极大地提高个人以及团队的工作效率和工作质量。 本书作者 Kenneth Reitz 于 2011 年发布 Requests 这个 HTTP 请求工具库,提出“for humans”的理念,强调软件 / 工具库应该友好易用,这一理念本质上是对 Python 哲学(特 别是上述两点)的一种引申和发扬。之后 Reitz 在一些 Python 大会上做技术分享,宣扬 “for humans”的理念,对 Python 社区产生了巨大影响。我在第一次用 Requests 库之后, 便很少使用 Python 标准库中的 urllib 和 urllib2 了,现在标准库文档中也特别建议开发者 使用 Requests。 因为对“for humans”理念的认同,也因为我经常使用 Requests,所以当 Reitz 在 GitHub 上邀请我翻译 Requests 文档中文版时,我欣然接受,和本书的另一位译者邦杰共同翻译 了 Requests 文档的首个官方中文版。
📄 Page 12
xii | 译者序 在 Reitz 发起“The Hitchhiker’s Guide to Python!”项目(也就是本书的社区开源版)后, 我一直跟进阅读,收获巨大。后来得知这本开源书籍正式出版,欣喜若狂,辗转咨询多人, 联系到刘皎老师,申请了本书的翻译工作。但是,后来发现翻译的工作量远远超出预估, 除一些主观原因外,主要因为本书内容的广度和深度。 y 广度:本书由 Python 社区数百人共同创作而成,可以视作 Python 小百科全书。第 1~3 章指导读者按照自己的需求选择安装配置 Python 版本 / 发行版、开发环境等。 第 7~11 章则针对不同的应用场景,从多个维度甄选并对比了大量的 Python 库,读 者可以“按图索骥”地做出自己的选择,从而节约大量的时间精力。因为译者的 Python 开发经验主要集中在 Web 开发和数据处理上,对于很多应用场景下的 Python 库不太熟悉,所以翻译之前花费了大量时间来学习和理解。 y 深度:针对 Python 新手的核心需求,本书探讨了大量的最佳实践。其中第 4~5 章通 过大量示例具体地阐释了“Python 之禅”:如何编写高质量的 Python 代码,并精选 若干高质量的知名 Python 开源项目,详细介绍如何通过阅读源码来提升编程技术水 平。虽说在 Python 社区几乎人人都知道“Python 之禅”,但如何落实在开发实践中 估计极少有人能说得清楚。对照书中的实例阐释,译者反复推敲“Python 之禅”的 译文,最终敲定的译文也不是特别令自己满意。 相比原计划,本书最终延期近一年才翻译完成。除了歉意,我内心满是感谢:感谢邦杰 中途友情加入,帮忙翻译了第 4~6 章的初稿,这三章的难度和文字量都非常大;感谢编 辑刘皎对我拖稿的次次容忍和耐心等待;感谢妻儿的理解,我欠了你们太多的陪伴。 虽然我已尽自己所能地保证译文质量,但是错误和瑕疵难免,在此也请读者原谅。希望 你们阅读愉快! 夏永锋 写于上海
📄 Page 13
xiii 目录 前言 ........................................................................................... xix 第 1 部分 起步 第 1 章 选择一个解释器 ........................................................................ 3 Python 2 与 Python 3 的状况对比 ..........................................................................3 建议 .......................................................................................................................3 那就选择 Python 3 吗 .............................................................................................4 Python 的不同实现 ................................................................................................4 CPython ...........................................................................................................5 Stackless ..........................................................................................................5 PyPy ................................................................................................................5 Jython ..............................................................................................................5 IronPython .......................................................................................................6 PythonNet ........................................................................................................6 Skulpt ..............................................................................................................6 MicroPython ....................................................................................................7 第 2 章 恰当地安装 Python ................................................................... 9 在 Mac OS X 上安装 Python ..................................................................................9 Setuptools 和 pip ........................................................................................... 11 virtualenv ...................................................................................................... 11
📄 Page 14
xiv | 目录 在 Linux 上安装 Python ....................................................................................... 12 Setuptools 和 pip ........................................................................................... 12 开发工具 ....................................................................................................... 13 virtualenv ...................................................................................................... 14 在 Windows 上安装 Python .................................................................................. 15 Setuptools 和 pip ........................................................................................... 17 virtualenv ...................................................................................................... 17 商业化 Python 二次发行版 .................................................................................. 18 第 3 章 搭建开发环境 ......................................................................... 21 文本编辑器 .......................................................................................................... 21 Sublime Text .................................................................................................. 22 Vim ................................................................................................................ 23 Emacs ............................................................................................................ 25 TextMate........................................................................................................ 26 Atom ............................................................................................................. 26 Code .............................................................................................................. 26 IDE....................................................................................................................... 27 PyCharm/IntelliJ IDEA .................................................................................. 28 Aptana Studio 3/Eclipse+LiClipse+PyDev ..................................................... 29 WingIDE........................................................................................................ 29 Spyder ........................................................................................................... 30 NINJA-IDE .................................................................................................... 30 Komodo IDE.................................................................................................. 30 Eric(Eric Python IDE) ................................................................................. 31 Visual Studio ................................................................................................. 31 增强型交互式工具 ............................................................................................... 32 IDLE ............................................................................................................. 32 IPython .......................................................................................................... 32 bpython .......................................................................................................... 33 环境隔离工具 ...................................................................................................... 33 虚拟环境 ....................................................................................................... 33 pyenv ............................................................................................................. 35 Autoenv ......................................................................................................... 36
📄 Page 15
目录 | xv virtualenvwrapper .......................................................................................... 36 Buildout ......................................................................................................... 37 Conda ............................................................................................................ 38 Docker ........................................................................................................... 39 第 2 部分 步入正题 第 4 章 编写高质量的代码 ................................................................... 43 代码风格 .............................................................................................................. 43 PEP 8 ............................................................................................................. 43 PEP 20(又名 Python 之禅) .......................................................................... 44 一般性建议 ................................................................................................... 45 约定 ............................................................................................................... 52 习语 ............................................................................................................... 55 常见陷阱 ....................................................................................................... 58 组织好项目的结构 ............................................................................................... 61 模块 ............................................................................................................... 61 包 .................................................................................................................. 65 面向对象编程 ................................................................................................ 66 装饰器 ........................................................................................................... 67 动态类型 ....................................................................................................... 68 可变类型和不可变类型 ................................................................................. 69 管理依赖 ....................................................................................................... 71 测试代码 .............................................................................................................. 72 测试的基础知识 ............................................................................................ 73 举例说明 ....................................................................................................... 76 其他流行工具 ................................................................................................ 80 文档 ..................................................................................................................... 82 项目文档 ....................................................................................................... 82 项目配套发行文档 ........................................................................................ 83 文档字符串与块注释 ..................................................................................... 84 日志 ..................................................................................................................... 84 在库中使用 logging ....................................................................................... 85
📄 Page 16
xvi | 目录 在应用中使用 logging ................................................................................... 86 选择许可证 .......................................................................................................... 88 上游许可证 ................................................................................................... 88 许可证选项 ................................................................................................... 89 软件许可相关的学习资源 ............................................................................. 90 第 5 章 阅读高质量的代码 ................................................................... 91 共同特征 .............................................................................................................. 92 HowDoI ................................................................................................................ 92 阅读单文件脚本 ............................................................................................ 93 取自 HowDoI 的结构示例 ............................................................................. 96 取自 HowDoI 的风格示例 ............................................................................. 97 Diamond ............................................................................................................... 99 阅读一个更大的应用程序 ............................................................................. 99 取自 Diamond 的结构示例 .......................................................................... 105 取自 Diamond 的风格示例 .......................................................................... 109 Tablib ................................................................................................................. 111 阅读一个小型库 .......................................................................................... 112 取自 Tablib 的结构示例 .............................................................................. 115 取自 Tablib 的风格示例 .............................................................................. 123 Requests ............................................................................................................. 126 阅读一个更大的库 ...................................................................................... 126 取自 Requests 的结构示例 .......................................................................... 130 取自 Requests 的风格示例 .......................................................................... 134 Werkzeug ........................................................................................................... 139 阅读一个工具包的代码 ............................................................................... 140 取自 Werkzeug 的风格示例 ......................................................................... 148 取自 Werkzeug 的结构示例 ......................................................................... 149 Flask................................................................................................................... 156 阅读一个框架的代码 ................................................................................... 156 取自 Flask 的风格示例 ................................................................................ 163 取自 Flask 的结构示例 ................................................................................ 164
📄 Page 17
目录 | xvii 第 6 章 交付高质量的代码 ................................................................. 169 有用的词汇和概念 ............................................................................................. 170 打包你的代码 .................................................................................................... 171 Conda .......................................................................................................... 171 PyPI ............................................................................................................. 171 冻结你的代码 .................................................................................................... 174 PyInstaller ................................................................................................... 176 cx_Freeze .................................................................................................... 178 py2app ......................................................................................................... 179 py2exe ......................................................................................................... 180 bbFreeze ...................................................................................................... 181 Linux 已构建分发包的打包技术 ........................................................................ 181 可执行的 ZIP 文件 ............................................................................................. 183 第 3 部分 场景化指南 第 7 章 用户交互 .............................................................................. 187 Jupyter Notebooks 项目 ...................................................................................... 187 命令行应用 ........................................................................................................ 188 图形化用户界面应用 ......................................................................................... 196 窗口部件库 ................................................................................................. 196 游戏开发 ..................................................................................................... 202 Web 应用 ............................................................................................................ 203 Web 框架 / 微框架 ....................................................................................... 203 Web 模板引擎 ............................................................................................. 206 Web 部署 ..................................................................................................... 212 第 8 章 代码管理和改进 .................................................................... 215 持续集成 ............................................................................................................ 215 系统管理 ............................................................................................................ 216 服务器自动化 .............................................................................................. 218 系统和任务监控 .......................................................................................... 222 加速 ................................................................................................................... 225
📄 Page 18
xviii | 目录 与 C/C++/FORTRAN 库进行交互 ............................................................... 235 第 9 章 软件接口 .............................................................................. 239 Web 客户端库 .................................................................................................... 240 Web API ...................................................................................................... 240 数据序列化 ........................................................................................................ 245 分布式系统 ........................................................................................................ 248 网络编程 ..................................................................................................... 248 密码技术 ............................................................................................................ 254 第 10 章 数据操作 ............................................................................ 261 科学应用 ............................................................................................................ 262 文本操作和文本挖掘 ......................................................................................... 266 Python 标准库中的字符串工具 ................................................................... 266 图像操作 ..................................................................................................... 269 第 11 章 数据持久化 ......................................................................... 273 结构化文件 ........................................................................................................ 273 数据库接口库 .................................................................................................... 274 附录 A 补充说明 ............................................................................... 289
📄 Page 19
xix 前言 Python 是一个大世界,大到让你难以置信! 本书不是教你如何学习 Python 语言的(我们引用了大量优秀资源供你学习),而是一份 Python 社区推荐工具和最佳实践的(有态度的)业内指南。本书的目标读者是初级到中 级水平的 Python 程序员,他们可能有志于使用 Python 为开源项目做贡献、开启一段职 业生涯或开创一家公司,不过临时用用 Python 的人也会发现第 1 部分和第 5 章的内容对 自己颇有帮助。 本书的第 1 部分帮助读者选择适合各自场景的文本编辑器或交互式开发环境(例如,常 用 Java 的读者可能偏爱 Eclipse,用它安装 Python 开发插件),并调研了其他可选择的 解释器,这些解释器也许可以满足那些你还不知道的 Python 能够解决的需求(例如, MicroPython 是基于 ARM Cortex-M4 芯片的一个实现)。第 2 部分重点介绍开源社区公 认的范例代码,展示地道的 Python 代码风格,希望能够鼓励读者进一步深入阅读和尝试 开源代码。第 3 部分简要地调研了大量的 Python 社区常用库,让读者初步认识到目前 Python 涉及的领域。 本书纸质版的所有版税都捐赠给 Django Girls,这是一个充满欢乐的全球性组织,旨在 组织免费的 Django 和 Python 讲习班,创建开源的在线教程,策划令人惊叹的技术体验 活动。如果有意愿,那么你可以从 http://docs.python-guide.org/en/latest/notes/contribute/ 上了解如何为本书的在线版本做贡献。
📄 Page 20
xx | 前言 本书的使用约定 这个图标标识一个提示或建议。 这个图标标识一个一般性注解。 这个图标标识一个警告信息。 Safari® 图书在线 Safari® 图书在线是一个点播式电子图书馆,以图书和视频的形式 展示来自技术和商业领域的世界权威作者的专业内容。 技术专家、软件开发者、Web 设计者及商业和创意专业人士都使用 Safari® 图书在线作为 科研、解决问题、学习和认证培训的核心资源。 Safari® 图书在线为企业、政府部门、教育机构,以及个人提供一系列的购买计划。 其成员可以访问无数的书籍、培训视频及正式出版前的草稿,这些资源存放在一个 完全可检索的数据库中,资源来源于各大出版商,如 O’Reilly Media、Prentice Hall Professional、Addison-Wesley Professional、Microsoft Press、Sams、 Que、Peachpit Press、Focal Press、Cisco Press、John Wiley & Sons、Syngress、Morgan Kaufmann、 IBM Redbooks、Packt、Adobe Press、FT Press、Apress、Manning、New Riders、 McGraw-Hill、Jones & Bartlett、Course Technology 等 200 多家出版商。更多关于 Safari® 图书在线的信息,请访问 https://www.safaribooksonline.com/。
The above is a preview of the first 20 pages. Register to read the complete e-book.

💝 Support Author

0.00
Total Amount (¥)
0
Donation Count

Login to support the author

Login Now
Back to List