当前位置:首页 > Python > Pythonpdf电子书
《Effective Python:编写高质量Python代码的90个有效方法(第2版)》电子书封面

Effective Python:编写高质量Python代码的90个有效方法(第2版)

  • 发布时间:2021年03月12日 20:08:38
  • 作者:布雷特·斯拉特金
  • 大小:86 MB
  • 类别:Python电子书
  • 格式:PDF
  • 版本:高清版
  • 评分:8.4

Effective Python:编写高质量Python代码的90个有效方法(第2版) PDF 高清版

    Effective Python:编写高质量Python代码的90个有效方法(第2版)》是一本关于Python相关的电子书资源,介绍了关于Python、Python代码方面的内容,本书是由机械工业出版社出版,格式为PDF,资源大小86 MB,布雷特·斯拉特金编写,目前豆瓣、亚马逊、当当、京东等综合评分为:7.6分,一起来看下具体内容。

    Tags:python Python代码 

    内容介绍

    本书可以帮你掌握真正的Pythonic编程方式,令你能够完全发挥出Python语言的强大功能,并写出健壮而高效的代码。Scott Meyers在畅销书Effective C 中开创了一种以使用场景为主导的精练教学方式,本书作者Brett Slatkin就以这种方式汇聚了90条实践原则、开发技巧和便捷方案,并以实用的代码范例来解释它们。

    ●Slatkin根据自己在Google公司多年开发Python基础架构所积累的经验,揭示Python语言中一些鲜为人知的微妙特性,并给出了能够改善代码功能及运行效率的习惯用法。通过本书,你能够了解到解决关键编程任务所用的奇妙方式,并学会编写易于理解、便于维护且利于改进的代码。

    ●适读人群:本书适合Python开发者以及对Python编程感兴趣的读者 ;以及对Python有初步了解的编程新手和有经验的程序员

    本书能够帮你掌握真正的 Pythonic 编程方式,充分发挥 Python 的优势,写出健壮而高效的代码。Scott Meyers在其名著Effective C 中开创了一种用简明的场景实例来讲述编程经验的方式,本书作者Brett Slatkin也沿用这种方式,向大家讲解 Python 的编程原则、开发技巧与便捷方案,形成 90 条建议并配有实用的范例代码,以便大家能够扎实地掌握 Python 语言。

    本书的关键内容包括:

    • ● 31 条新的实用建议,这些建议涵盖 Python 开发的几个主要方面。
    • ● 对各种语句、表达式与内置类型做了详细讲解与演示。
    • ● 怎样写出意图清晰、便于复用而且不容易出现 bug 的函数。
    • ● 怎样更好地使用推导机制与生成器函数。
    • ● 怎样用类与接口准确展示相关的行为。
    • ● 怎样避开元类与动态属性中的一些陷阱。
    • ● 怎样用更高效且更清晰的方法写出并发与并行程序。
    • ● 怎样优化程序性能并提升代码质量。
    • ● 用于改进调试与测试工作的技术与内置模块。
    • ● 与协作开发有关的工具和经验。
    • 目录

    • ●第1章 培养Pythonic思维 // 1
    • 第1条 查询自己使用的Python版本 // 1
    • 第2条 遵循PEP 8风格指南 // 2
    • 第3条 了解bytes与str的区别 // 5
    • 第4条 用支持插值的f-string取代C风格的格式字符串与str.format方法 // 9
    • 第5条 用辅助函数取代复杂的表达式 // 19
    • 第6条 把数据结构直接拆分到多个变量里,不要专门通过下标访问 // 21
    • 第7条 尽量用enumerate取代range // 25
    • 第8条 用zip函数同时遍历两个迭代器 // 26
    • 第9条 不要在for与while循环后面写else块 // 28
    • 第10条 用赋值表达式减少重复代码 // 31
    •  
    • ●第2章 列表与字典 // 37
    • 第11条 学会对序列做切片 // 37
    • 第12条 不要在切片里同时指定起止下标与步进 // 40
    • 第13条 通过带星号的unpacking操作来捕获多个元素,不要用切片 // 42
    • 第14条 用sort方法的key参数来表示复杂的排序逻辑 // 45
    • 第15条 不要过分依赖给字典添加条目时所用的顺序 // 51
    • 第16条 用get处理键不在字典中的情况,不要使用in与KeyError // 56
    • 第17条 用defaultdict处理内部状态中缺失的元素,而不要用setdefault // 61
    • 第18条 学会利用__missing__构造依赖键的默认值 // 63
    •  
    • ●第3章 函数 // 66
    • 第19条 不要把函数返回的多个数值拆分到三个以上的变量中 // 66
    • 第20条 遇到意外状况时应该抛出异常,不要返回None // 69
    • 第21条 了解如何在闭包里面使用外围作用域中的变量 // 71
    • 第22条 用数量可变的位置参数给函数设计清晰的参数列表 // 75
    • 第23条 用关键字参数来表示可选的行为 // 77
    • 第24条 用None和docstring来描述默认值会变的参数 // 80
    • 第25条 用只能以关键字指定和只能按位置传入的参数来设计清晰的参数列表 // 83
    • 第26条 用functools.wraps定义函数修饰器 // 88
    •  
    • ●第4章 推导与生成 // 91
    • 第27条 用列表推导取代map与filter // 91
    • 第28条 控制推导逻辑的子表达式不要超过两个 // 93
    • 第29条 用赋值表达式消除推导中的重复代码 // 94
    • 第30条 不要让函数直接返回列表,应该让它逐个生成列表里的值 // 97
    • 第31条 谨慎地迭代函数所收到的参数 // 100
    • 第32条 考虑用生成器表达式改写数据量较大的列表推导 // 104
    • 第33条 通过yield from把多个生成器连起来用 // 106
    • 第34条 不要用send给生成器注入数据 // 108
    • 第35条 不要通过throw变换生成器的状态 // 113
    • 第36条 考虑用itertools拼装迭代器与生成器 // 117
    •  
    • ●第5章 类与接口 // 122
    • 第37条 用组合起来的类来实现多层结构,不要用嵌套的内置类型 // 122
    • 第38条 让简单的接口接受函数,而不是类的实例 // 128
    • 第39条 通过@classmethod多态来构造同一体系中的各类对象 // 131
    • 第40条 通过super初始化超类 // 136
    • 第41条 考虑用mix-in类来表示可组合的功能 // 140
    • 第42条 优先考虑用public属性表示应受保护的数据,不要用private属性表示 // 144
    • 第43条 自定义的容器类型应该从collections.abc继承 // 149
    • ●第6章 元类与属性 // 153
    • 第44条 用纯属性与修饰器取代旧式的setter与getter方法 // 153
    • 第45条 考虑用@property实现新的属性访问逻辑,不要急着重构原有的代码 // 157
    • 第46条 用描述符来改写需要复用的@property方法 // 160
    • 第47条 针对惰性属性使用__getattr__、__getattribute__及__setattr__ // 165
    • 第48条 用__init_subclass__验证子类写得是否正确 // 170
    • 第49条 用__init_subclass__记录现有的子类 // 177
    • 第50条 用__set_name__给类属性加注解 // 181
    • 第51条 优先考虑通过类修饰器来提供可组合的扩充功能,不要使用元类 // 185
    • ●第7章 并发与并行 // 191
    • 第52条 用subprocess管理子进程 // 192
    • 第53条 可以用线程执行阻塞式I/O,但不要用它做并行计算 // 195
    • 第54条 利用Lock防止多个线程争用同一份数据 // 199
    • 第55条 用Queue来协调各线程之间的工作进度 // 202
    • 第56条 学会判断什么场合必须做并发 // 210
    • 第57条 不要在每次fan-out时都新建一批Thread实例 // 214
    • 第58条 学会正确地重构代码,以便用Queue做并发 // 218
    • 第59条 如果必须用线程做并发,那就考虑通过ThreadPoolExecutor实现 // 224
    • 第60条 用协程实现高并发的I/O // 226
    • 第61条 学会用asyncio改写那些通过线程实现的I/O // 230
    • 第62条 结合线程与协程,将代码顺利迁移到asyncio // 239
    • 第63条 让asyncio的事件循环保持畅通,以便进一步提升程序的响应能力 // 245
    • 第64条 考虑用concurrent.futures实现真正的并行计算 // 248
    •  
    • ●第8章 稳定与性能 // 253
    • 第65条 合理利用try/except/else/finally结构中的每个代码块 // 253
    • 第66条 考虑用contextlib和with语句来改写可复用的try/finally代码 // 258
    • 第67条 用datetime模块处理本地时间,不要用time模块 // 262
    • 第68条 用copyreg实现可靠的pickle操作 // 265
    • 第69条 在需要准确计算的场合,用decimal表示相应的数值 // 272
    • 第70条 先分析性能,然后再优化 // 274
    • 第71条 优先考虑用deque实现生产者-消费者队列 // 278
    • 第72条 考虑用bisect搜索已排序的序列 // 284
    • 第73条 学会使用heapq制作优先级队列 // 286
    • 第74条 考虑用memoryview与bytearray来实现无须拷贝的bytes操作 // 294
    •  
    • ●第9章 测试与调试 // 300
    • 第75条 通过repr字符串输出调试信息 // 301
    • 第76条 在TestCase子类里验证相关的行为 // 304
    • 第77条 把测试前、后的准备与清理逻辑写在setUp、tearDown、setUpModule与tearDownModule中,以防用例之间互相干扰 // 309
    • 第78条 用Mock来模拟受测代码所依赖的复杂函数 // 312
    • 第79条 把受测代码所依赖的系统封装起来,以便于模拟和测试 // 319
    • 第80条 考虑用pdb做交互调试 // 322
    • 第81条 用tracemalloc来掌握内存的使用与泄漏情况 // 326
    • ●第10章 协作开发 // 329
    • 第82条 学会寻找由其他Python开发者所构建的模块 // 329
    • 第83条 用虚拟环境隔离项目,并重建依赖关系 // 330
    • 第84条 每一个函数、类与模块都要写docstring // 335
    • 第85条 用包来安排模块,以提供稳固的API // 339
    • 第86条 考虑用模块级别的代码配置不同的部署环境 // 344
    • 第87条 为自编的模块定义根异常,让调用者能够专门处理与此API有关的异常 // 346
    • 第88条 用适当的方式打破循环依赖关系 // 350
    • 第89条 重构时考虑通过warnings提醒开发者API已经发生变化 // 355
    • 第90条 考虑通过typing做静态分析,以消除bug // 361

    以上就是本次介绍的Python电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对码农之家的支持。

    上一篇:Python编程:从入门到实践(第2版)

    下一篇:看漫画学Python:有趣、有料、好玩、好用

    查看更多
    下载地址:百度网盘下载
    Python 相关电子书
    Python项目开发案例集锦:实战项目代码+配套文件
    Python项目开发案例集锦:实战项目代码+配套文件 PDF 完整版

    Python项目开发案例集锦 涵盖8个开发方向、23个项目,循序渐进地让读者在实践中学习,在实践中提升实际开发能力。 全书共8篇:控制台程序、小游戏、实用小工具、网络爬虫、数据分析、人工智能、Web开发和微信小程序,内容包括:学生信息管理系统、企业编码生成系统、简易五子棋游戏(控制台版)、玛丽冒险、彩图版飞机大战、DIY字符画、超级画板、Word助手、图片批量处理器、RCQ读者书库、火车票分析助手、高德地图+58租房、开心麻花影视作品分

    立即下载
    编写高质量代码:改善Python程序的91个建议
    编写高质量代码:改善Python程序的91个建议 PDF 清晰扫描版 立即下载
    零基础python入门(含课件代码)
    零基础python入门(含课件代码) PDF 高清版

    本资源是《 零基础python入门 》课程的附带课件,包含PPT讲义和课程代码。是零基础python学习者的福音,手把手教你如何学好python,需要的朋友可下载试试! 目录 第一章:课程介绍及python发展方向 第二章:程序设计与python语言 第三章:案例1 -- 汇率兑换 第四章:案例2 -- 分形树的绘制 第五章:案例3 -- 基础代谢率(BMR)计算 第六章:案例4 -- 52周存钱挑战 第七章:案例5 -- 判断第几天 第八章:案例6 -- 判断密码强弱 第九章:案例7 -- 模拟掷骰子

    立即下载
    Effective Python:编写高质量Python代码的59个有效方法
    Effective Python:编写高质量Python代码的59个有效方法 PDF 高清版

    本书作者BrettSlatkin以使用场景为主导的精练教学方式,汇聚了59条优秀的实践原则、开发技巧和便捷方案,并以实用的代码范例来解释它们。作者根据自己在Google公司多年开发Python基础架构所积

    立即下载
    读者心得
    74小时12分钟前回答

    Python代码打开本地.mp4格式文件的方法

    想通过编写Python代码来打开本地的.mp4格式文件,使用os模块来操作文件。我的电脑默认的是QQ影音播放器,执行Python代码打开默认播放器,播放代码中指定的视频文件。 class Video(object): def __init__(self,path): self.path = path def play(self): from os import startfile startfile(self.path)class Movie_MP4(Video): type = 'MP4'movie = Movie_MP4(r'D:\my_video.mp4')movie.play() [参考链接:https://stackoverflow.com/questions/21313542/how-to-open-a-mp4-file-with-python ] 以上这篇Python代码打开本地.mp4格式文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持码农之家。 ……

    46小时46分钟前回答

    高质量Python代码编写的5个优化技巧

    如今我使用 Python 已经很长时间了,但当我回顾之前写的一些代码时,有时候会感到很沮丧。例如,最早使用 Python 时,我写了一个名为 Sudoku 的游戏(GitHub地址:https://github.com/MichaelWashburnJr/PythonSudoku)。这个游戏在当时算是我比较拿得出手的项目了。然而现在,我无法直接复制其代码并运行它,具体原因是我当时编码时没有添加一个setup.py 或者 requires.txt 文件,当然,这种错误我肯定不会再犯! 由此,我总结了多年来自己所编写的 Python 代码的质量变化过程。它们变得更加简洁、健壮、易读。但是什么原因使得 Python 代码变得更好呢? 在本文中笔者将与大家共同探讨一些 Python 代码的优化手段,或大或……

    114小时44分钟前回答

    15行Python代码实现网易云热门歌单实例教程

    0. 引言 马上314情人节就要来了,是否需要一首歌来抚慰你,受伤或躁动的心灵。来吧,今天教你用15行代码搞定热门歌单。学起来并听起来吧。 本文使用的是Selenium模块,它是一个自动化测试工具,利用它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,对于一些 JavaScript 渲染的页面来说,此种抓取方式非常有效。另外采用了Chrome浏览器配合Selenium工作。 下面话不多说了,来一起看看详细的介绍吧 1. 环境 操作系统:Windows Python版本:3.7.2 2. 准备工作 a. 若你的环境中没有selenium模块,直接使用pip安装即可。 pip install selenium b. 打开谷歌浏览器,检查Chrome的版本:在浏览器地址中输入 chrome:/……

    码农之家

    莘宇航 提供上传

    资源
    24
    粉丝
    18
    喜欢
    56
    评论
    14

    Copyright 2018-2021 www.xz577.com 码农之家

    版权投诉 / 书籍推广:520161757@qq.com