您好,欢迎来到聚文网。
登录
免费注册
网站首页
|
搜索
热搜:
磁力片
|
漫画
|
购物车
0
我的订单
商品分类
首页
幼儿
文学
社科
教辅
生活
销量榜
Effective Python
装帧: 平装
出版社: 机械工业出版社
作者: (美)布雷特·斯拉特金(Brett Slatkin) 著;爱飞翔 译 著
出版日期: 2016-01-01
商品条码: 9787111523550
版次: 1
开本: 16开
页数: 210
出版年份: 2016
定价:
¥59
销售价:
登录后查看价格
¥{{selectedSku?.salePrice}}
库存:
{{selectedSku?.stock}}
库存充足
{{item.title}}:
{{its.name}}
加入购物车
立即购买
加入书单
收藏
精选
¥5.83
世界图书名著昆虫记绿野仙踪木偶奇遇记儿童书籍彩图注音版
¥5.39
正版世界名著文学小说名家名译中学生课外阅读书籍图书批发 70册
¥8.58
简笔画10000例加厚版2-6岁幼儿童涂色本涂鸦本绘画本填色书正版
¥5.83
世界文学名著全49册中小学生青少年课外书籍文学小说批发正版
¥4.95
全优冲刺100分测试卷一二三四五六年级上下册语文数学英语模拟卷
¥8.69
父与子彩图注音完整版小学生图书批发儿童课外阅读书籍正版1册
¥24.2
好玩的洞洞拉拉书0-3岁宝宝早教益智游戏书机关立体翻翻书4册
¥7.15
幼儿认字识字大王3000字幼儿园中班大班学前班宝宝早教启蒙书
¥11.55
用思维导图读懂儿童心理学培养情绪管理与性格培养故事指导书
¥19.8
少年读漫画鬼谷子全6册在漫画中学国学小学生课外阅读书籍正版
¥64
科学真好玩
¥12.7
一年级下4册·读读童谣和儿歌
¥38.4
原生态新生代(传统木版年画的当代传承国际研讨会论文集)
¥11.14
法国经典中篇小说
¥11.32
上海的狐步舞--穆时英(中国现代文学馆馆藏初版本经典)
¥21.56
猫的摇篮(精)
¥30.72
幼儿园特色课程实施方案/幼儿园生命成长启蒙教育课程丛书
¥24.94
旧时风物(精)
¥12.04
三希堂三帖/墨林珍赏
¥6.88
寒山子庞居士诗帖/墨林珍赏
¥6.88
苕溪帖/墨林珍赏
¥6.88
楷书王维诗卷/墨林珍赏
¥9.46
兰亭序/墨林珍赏
¥7.74
祭侄文稿/墨林珍赏
¥7.74
蜀素帖/墨林珍赏
¥12.04
真草千字文/墨林珍赏
¥114.4
进宴仪轨(精)/中国古代舞乐域外图书
¥24.94
舞蹈音乐的基础理论与应用
内容简介
本书作者BrettSlatkin以使用场景为主导的精练教学方式,汇聚了59条优秀的实践原则、开发技巧和便捷方案,并以实用的代码范例来解释它们。作者根据自己在Google公司多年开发Python基础架构所积累的经验,揭示了Python语言中一些鲜为人知的微妙特性,并给出了能够改善代码功能及运行效率的习惯用法。通过本书,你能够了解到解决关键编程任务所用的最佳方式,并学会编写易于理解、便于维护且利于改进的代码。
作者简介
布雷特·斯拉特金,Gooqle公司高级软件工程师。他是Google消费者调查项目的工程主管及联合创始人,曾从事Google App Engine的Python基础架构工作,并利用Python来管理众多的Google服务器。Slatkin也是PubSubHubbub协议的联合创始人,还用Python为GoogIe实现了针对该协议的系统。他拥有哥伦比亚大学计算机工程专业学士学位。
目录
本书赞誉
译者序
前言
致谢
第1章用Pythonic方式来思考
第1条:确认自己所用的Python版本
第2条:遵循PEP8风格指南
第3条:了解bytes、str与unicode的区别
第4条:用辅助函数来取代复杂的表达式
第5条:了解切割序列的办法
第6条:在单次切片操作内,不要同时指定start、end和stride
第7条:用列表推导来取代map和filter
第8条:不要使用含有两个以上表达式的列表推导
第9条:用生成器表达式来改写数据量较大的列表推导
第10条:尽量用enumerate取代range
第11条:用zip函数同时遍历两个迭代器
第12条:不要在for和while循环后面写else块
第13条:合理利用try/except/else/finally结构中的每个代码块
第2章函数
第14条:尽量用异常来表示特殊情况,而不要返回None
第15条:了解如何在闭包里使用外围作用域中的变量
第16条:考虑用生成器来改写直接返回列表的函数
第17条:在参数上面迭代时,要多加小心
第18条:用数量可变的位置参数减少视觉杂讯
第19条:用关键字参数来表达可选的行为
第20条:用None和文档字符串来描述具有动态默认值的参数
第21条:用只能以关键字形式指定的参数来确保代码明晰
第3章类与继承
第22条:尽量用辅助类来维护程序的状态,而不要用字典和元组
第23条:简单的接口应该接受函数,而不是类的实例
第24条:以@classmethod形式的多态去通用地构建对象
第25条:用super初始化父类
第26条:只在使用Mix-in组件制作工具类时进行多重继承
第27条:多用public属性,少用private属性
第28条:继承collections.abc以实现自定义的容器类型
第4章元类及属性84
第29条:用纯属性取代get和set方法
第30条:考虑用@property来代替属性重构
第31条:用描述符来改写需要复用的@property方法
第32条:用__getattr__、__getattribute__和__setattr__实现按需生成的属性
第33条:用元类来验证子类
第34条:用元类来注册子类
第35条:用元类来注解类的属性
第5章并发及并行
第36条:用subprocess模块来管理子进程
第37条:可以用线程来执行阻塞式I/O,但不要用它做平行计算
第38条:在线程中使用Lock来防止数据竞争
第39条:用Queue来协调各线程之间的工作
第40条:考虑用协程来并发地运行多个函数
第41条:考虑用concurrent.futures来实现真正的平行计算
第6章内置模块
第42条:用functools.wraps定义函数修饰器
第43条:考虑以contextlib和with语句来改写可复用的try/finally代码
第44条:用copyreg实现可靠的pickle操作
第45条:应该用datetime模块来处理本地时间,而不是用time模块
第46条:使用内置算法与数据结构
第47条:在重视精确度的场合,应该使用decimal
第48条:学会安装由Python开发者社区所构建的模块
第7章协作开发
第49条:为每个函数、类和模块编写文档字符串
第50条:用包来安排模块,并提供稳固的API
第51条:为自编的模块定义根异常,以便将调用者与API相隔离
第52条:用适当的方式打破循环依赖关系
第53条:用虚拟环境隔离项目,并重建其依赖关系
第8章部署
第54条:考虑用模块级别的代码来配置不同的部署环境
第55条:通过repr字符串来输出调试信息
第56条:用unittest来测试全部代码
第57条:考虑用pdb实现交互调试
第58条:先分析性能,然后再优化
第59条:用tracemalloc来掌握内存的使用及泄漏情况
摘要
Preface?前 言Python编程语言很强大、很有魅力,但同时也很独特,所以掌握起来比较困难。许多程序员从他们所熟悉的语言转入Python之后,没能把思路打开,以致写出的代码无法完全发挥出Python的特性,而另外一些程序员则相反,他们滥用Python的特性,导致程序可能在将来出现严重问题。 本书会深入讲解如何以符合Python风格的(Pythonic)方式来编写程序,这种方式就是运用Python语言的最佳方式。笔者假定你对这门语言已经有了初步了解。编程新手可以通过本书学到各种Python功能的最佳用法,而编程老手则能够学会如何自信地运用一种功能强大的新工具。 笔者的目标是令大家学会用Python来开发优秀的软件。 本书涵盖的内容本书每一章都包含许多互相关联的条目,大家可以按照自己的需要,随意阅读这些条目。每个条目都包含简明而具体的教程,告诉你应该如何更高效地编写Python程序。笔者在每个条目里面都给出了建议,告诉大家应该怎样做、应该避免哪些用法,以及如何在各种做法之间求得平衡,并解释了笔者所选的做法好在哪里。 本书中的各项条目,适用于Python 3和Python 2(请参阅本书第1条)。对于Jython、IronPython或PyPy等其他运行时环境,大部分条目应该同样适用。 第1章:用Pythonic方式来思考Python开发者用Pythonic这个形容词来描述具有特定风格的代码。这种风格是大家在使用Python语言进行编程并相互协作的过程中逐渐形成的习惯。本章讲解如何以该风格来完成常见的Python编程工作。 第2章:函数Python中的函数具备多种特性,这可以简化编程工作。Python函数的某些性质与其他编程语言中的函数相似,但也有些性质是Python独有的。本章介绍如何用函数来表达意图、提升可复用程度,并减少bug。 第3章:类与继承Python是面向对象的语言。用Python编程时,通常需要编写新类,并定义这些类应该如何通过其接口及继承体系与外界相交互。本章讲解如何使用类和继承来表达对象所应具备的行为。 第4章:元类及属性元类(metaclass)及动态属性(dynamic attribute)都是很强大的Python特性,然而它们也可能导致极其古怪、极其突然的行为。本章讲解这些机制的常见用法,以确保读者写出来的代码符合最小惊讶原则(rule of least surprise)。 第5章:并发及并行用Python很容易就能写出并发程序,这种程序可以在同一时间做许多件不同的事情。我们也可以通过系统调用、子进程(subprocess)及C语言扩展来实现并行处理。本章讲解如何在不同情况下充分利用这些Python特性。 第6章:内置模块Python预装了许多写程序时会用到的重要模块。这些标准软件包与通常意义上的Python语言联系得非常紧密,我们可以将其当成语言规范的一部分。本章将会讲解基本的内置模块。 第7章:协作开发如果许多人要开发同一个Python程序,那就得仔细商量代码的写法了。即便你是一个人开发,也需要理解其他人所写的模块。本章讲解多人协作开发Python程序时所用的标准工具及最佳做法。 第8章:部署Python提供了一些工具,使我们可以把软件部署到不同的环境中。它也提供了一些模块,令开发者可以把程序编写得更加健壮。本章讲解如何使用Python调试、优化并测试程序,以提升其质量与性能。 本书使用的约定本书在Python代码风格指南(Python style guide)的基础上做了一些修改,使范例代码便于印刷,也便于凸显其中的重要内容。一行代码比较长时,会以?字符来表示折行。代码中的某些部分,与当前要讲的问题联系不大,笔者会将这部分代码略去,并在注释中以省略号来表示(# ...)。为了缩减范例代码的篇幅,笔者也把内嵌的文档删去了。读者在开发自己的项目时不应该这么做,而是应该遵循Python风格指南(参见本书第2条),并为源代码撰写开发文档(参见本书第49条)。 书中大部分代码,运行之后都会产生输出(output)。笔者所谓的输出,意思是说:在互动式解释器(interactive interpreter)中运行这些Python程序时,控制台或终端机里面会打印出一些信息。这些打印出来的信息,以等宽字体印刷,它们上方的那一行会标有>>>符号(这个>>>符号是Python解释器的提示符)。笔者使用这个符号是想告诉大家:把>>>上方的那些范例代码输入Python shell之后,会产生与>>>下方文字相符的输出信息。 除此之外,还有一些上方虽无>>>符号,但却以等宽字体印刷的代码段。这些内容用来表示产生于Python解释器之外的输出信息。它们的上方通常都会有$字符,这表示笔者是在Bash之类的命令行shell里面先运行了程序,然后才产生这些输出的。 获取源代码及勘误表大家可以抛开本书的讲解部分,把某些范例作为完整的程序运行一遍,这样是很有好处的。你可以用这些代码做实验,以了解整个程序的运行原理。全部源码都可以从本书网站(http://www.effectivepython.com/)下载。书中的错误也会张贴到该网站。 致 谢?Acknowledgements在生活中,有很多人给了我指导、支持及鼓励,没有他们,本书就不会面世。 感谢《Effective Software Development》系列的顾问Scott Meyers。笔者15岁那年初次阅读了Scott所写的《Effective C++》,当时我就迷上了这门语言。我后来的教育经历,以及在Google的第一份工作,无疑都得益于Scott的那本书。这次有机会写作本书,本人深感荣幸。 感谢核心技术评审者Brett Cannon、Tavis Rudd和Mike Taylor,他们为本书提供了深刻而透彻的反馈意见。感谢Leah Culver和Adrian Holovaty,他们两位认为写作这样一本书很有意义。感谢友人Michael Levine、Marzia Niccolai、Ade Oshineye和Katrina Sostek,他们耐心阅读了本书的初稿。也感谢Google诸位同事审读本书。若没有以上诸君的帮助,本书读起来可能就会比较费解。 感谢制作本书的每一位工作人员。感谢编辑Trina MacDonald启动本书制作流程,并提供大力支持。感谢诸位团队成员帮助制作本书,他们是:策划编辑Tom Cirtin和Chris Zahn、助理编辑Olivia Basegio、营销经理Stephane Nakib、文字编辑Stephanie Geels,以及生产编辑Julie Nahil。 感谢与我共事的诸位优秀Python程序员:Anthony Baxter、Brett Cannon、Wesley Chun、Jeremy Hylton、Alex Martelli、Neal Norwitz、Guido van Rossum、Andy Smith、Greg Stein和Ka-Ping Yee。很高兴你们能督促并指引我学习Python。Python开发社团构建得非常优秀,成为一名Python开发者,令我感到特别荣幸。 感谢诸位同事这些年来对我的关照。感谢Kevin Gibbs帮助我应对风险。感谢Ken Ashcraft、Ryan Barrett和Jon McAlister教会我如何工作。感谢Brad Fitzpatrick帮助我提升工作能力。感谢Paul McDonald陪我一起创建我们的搞怪项目。感谢Jeremy Ginsberg和Jack Hebert令其成为现实。 感谢激发我编程兴趣的诸位老师:Ben Chelf、Vince Hugo、Russ Lewin、Jon Stemmle、Derek Thomson和Daniel Wang。正因为有了你们的指引,我才会努力磨练编程技术,进而使自己有能力去教导他人。 感谢母亲使我找到了人生的目标并鼓励我做程序员。感谢兄弟、祖父母、众亲戚以及儿时的玩伴,从小你们就是我的榜样,也使我找到了成长的快乐。 最后要感谢我的妻子Colleen,感谢她的关爱和支持,感谢她带来的欢笑。
×
Close
添加到书单
加载中...
点此新建书单
×
Close
新建书单
标题:
简介:
蜀ICP备2024047804号
Copyright 版权所有 © jvwen.com 聚文网