图书介绍

Python学习手册 下 原书第5版【2025|PDF下载-Epub版本|mobi电子书|kindle百度云盘下载】

Python学习手册 下 原书第5版
  • (美)马克·卢茨 著
  • 出版社: 北京:机械工业出版社
  • ISBN:7111603665
  • 出版时间:2018
  • 标注页数:1470页
  • 文件大小:209MB
  • 文件页数:722页
  • 主题词:

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

Python学习手册 下 原书第5版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第六部分 类和面向对象编程(OOP)771

第26章 OOP:宏伟蓝图771

为何使用类772

概览OOP773

属性继承搜索773

类和实例775

方法调用776

编写类树776

运算符重载778

OOP是关于代码重用779

本章小结782

本章习题782

习题解答783

第27章 类代码编写基础784

类生成多个实例对象784

类对象提供默认行为785

实例对象是具体的元素785

第一个示例786

类通过继承进行定制788

第二个示例789

类是模块内的属性790

类可以截获Python运算符791

第三个示例793

为什么要使用运算符重载795

世界上最简单的Python类795

重访记录:类vs字典798

本章小结800

本章习题801

习题解答801

第28章 一个更加实际的示例803

步骤1:创建实例804

编写构造函数804

在行进中测试805

以两种方式使用代码806

版本兼容性提示:Prints807

步骤2:添加行为方法808

编写方法810

步骤3:运算符重载812

提供打印显示812

步骤4:通过编写子类定制行为814

编写子类814

扩展方法:不好的方式815

扩展方法:好的方式815

如果使用super会怎么样呢817

多态的应用818

继承、定制和扩展819

OOP:宏观理念819

步骤5:定制构造函数820

OOP比你认为的要简单821

组合类的其他方式822

在Python 3.X中捕获内置属性825

步骤6:使用内省工具826

特殊的类属性826

一种通用显示工具828

实例vs类属性829

工具类的命名要求830

类的最终形式831

步骤7(最后一步):把对象存储到数据库中832

pickle和shelve833

在shelve数据库中存储对象834

交互式地探索shelve835

更新shelve中的对象837

未来方向838

本章小结840

本章习题841

习题解答841

第29章 类代码编写细节843

class语句843

一般形式844

示例844

方法846

示例847

调用父类构造函数848

其他方法调用的可能性848

继承849

属性树的构造849

定制被继承的方法850

类接口技术851

抽象父类852

命名空间:结论855

简单名称:如果被赋值就不是全局的855

属性名称:对象命名空间856

Python命名空间之“禅”:赋值决定名称856

嵌套的类:重温LEGB作用域规则859

命名空间字典:复习861

命名空间链接:一个类树爬升器863

重访文档字符串865

类vs模块866

本章小结867

本章习题867

习题解答868

第30章 运算符重载869

基础知识869

构造函数和表达式:_init_和_sub_870

常见的运算符重载方法870

索引和分片:_getitem_和_setitem_873

拦截分片873

Python 2.X中的分片和索引875

Python 3.X中的_index_不是索引876

索引迭代:_getitem876

可迭代对象:_iter_和_next_877

用户定义的可迭代对象878

单个对象上的多个迭代器881

编程备选方案:_iter_加yield884

成员关系:_contains_、iter_和_getitem_888

属性访问:_getattr_和_etattr_891

属性引用891

属性赋值和删除892

其他属性管理工具894

模拟实例属性的私有化:第一部分894

字符串显示:_repr_和_str_895

为什么需要两种显示方法896

显示用例提要898

右侧加法和原位置加法:_radd_和_iadd_899

右侧加法899

原位置加法903

调用表达式:_call_904

函数接口和基于回调的代码905

比较运算:_lt_、_gt_和其他方法907

Python 2.X中的_cmp_方法908

布尔测试:_bool_和_len_909

Python 2.X中的布尔方法910

对象析构函数:_del_911

析构函数使用提要912

本章小结913

本章习题913

习题解答913

第31章 类的设计915

Python和OOP915

多态意味着接口,不是函数调用签名916

OOP和继承:“is-a”关系917

OOP和组合:“has-a”关系918

重访流处理器920

请留意:类和持久化922

OOP和委托:“包装器”代理对象924

类的伪私有属性925

名称重整概览926

为什么使用伪私有属性927

方法是对象:绑定或未绑定929

在Python 3.X中,未绑定方法是函数931

绑定方法和其他可调用对象932

请留意:绑定方法的回调函数934

类是对象:一般对象的工厂935

为什么使用工厂936

多继承:“mix-in”类937

编写mix-in显示类938

与设计相关的其他话题957

本章小结957

本章习题958

习题解答958

第32章 类的高级主题959

扩展内置类型960

通过内嵌方式扩展类型960

通过子类扩展类型961

“新式”类模型963

新式类“新”在哪里964

新式类变化965

内置属性的获取将跳过实例966

类型模型改变971

所有对象派生自“object”974

钻石继承改变976

深入讨论MRO:方法解析顺序980

示例:将属性映射到对应的继承源983

新式类扩展988

slot:属性声明989

property:属性访问器998

_getattribute_和描述符:属性工具1001

其他的类改变和扩展1002

静态方法和类方法1002

为什么使用特殊方法1003

Python 2.X和Python 3.X中的静态方法1003

静态方法备选方案1005

使用静态方法和类方法1007

用静态方法计数实例1008

用类方法计数实例1009

装饰器和元类:第一部分1012

函数装饰器基础1013

初探用户定义函数装饰器1015

初探类装饰器和元类1016

更多的细节1018

super内置函数:更好还是更糟1018

super引发的大论战1019

传统的父类调用形式:可移植、通用1020

super的基础用法与折中1021

super的优势:继承树的修改与分发1026

运行时类修改与super1027

协同多继承方法分发1028

super总结1039

类陷阱1041

修改类属性可能会造成副作用1041

修改可变类属性也可能产生副作用1042

多继承:顺序很重要1043

方法和类中的作用域1044

其他类陷阱1045

重温KISS法则:“过度包装”1046

本章小结1047

本章习题1047

习题解答1047

第六部分练习题1049

请留意:大师眼中的OOP1053

第七部分 异常和工具1057

第33章 异常基础1057

为什么使用异常1058

异常的角色1058

异常:梗概1059

默认异常处理器1059

捕获异常1060

引发异常1061

用户定义的异常1062

终止动作1063

请留意:错误检查1064

本章小结1065

本章习题1066

习题解答1066

第34章 异常编写细节1067

try/except/else语句1067

try语句的工作方式1068

try语句分句1069

try else分句1072

示例:默认行为1072

示例:捕获内置异常1074

try/finally语句1074

示例:利用try/finally编写终止行为1075

合并try/except/finally语句1076

合并try语句的语法1077

通过嵌套合并finally和except1078

合并try语句的示例1079

raise语句1080

引发异常1081

作用域和try except变量1082

利用raise传递异常1084

Python 3.X异常链:raise from1084

assert语句1086

示例:捕获约束条件(但不是错误)1087

with/as上下文管理器1088

基本用法1088

上下文管理协议1090

Python 3.1、2.7及之后版本的多重上下文管理器1091

本章小结1093

本章习题1094

习题解答1094

第35章 异常对象1095

异常:回到未来1096

字符串异常出局了1096

基于类的异常1097

编写异常类1097

为什么使用异常层次结构1099

内置异常类1102

内置异常类别1103

默认打印和状态1104

定制的打印显示1106

定制的数据和行为1107

提供异常细节1108

提供异常方法1108

本章小结1110

本章习题1110

习题解答1110

第36章 异常的设计1112

嵌套异常处理程序1112

示例:控制流嵌套1113

示例:语法嵌套化1114

异常的习惯用法1116

跳出多重嵌套循环:“go to”1116

异常并不总是错误1117

函数可以用raise语句触发状况1117

断开文件和服务器连接1118

使用外层try语句辅助调试1119

运行进程中的测试1120

关于sys.exc_info的更多内容1121

显示错误和跟踪1121

异常设计的建议与陷阱1122

应该包装什么1123

捕获了太多:避免空的except分句和Exception异常1123

捕获过少:使用基于类的异常分类1125

核心语言总结1126

Python工具集1126

大型项目的开发工具1127

本章小结1130

本章习题1131

习题解答1131

第七部分练习题1131

第八部分 高级主题1135

第37章 Unicode和字节串1135

Python 3.X中的字符串修改1136

字符串基础知识1137

字符编码方案1137

Python是如何在内存中存储字符串的1139

Python的字符串类型1141

文本和二进制文件1143

编写基本的字符串1144

Python 3.X的字符串字面量1144

Python 2.X的字符串字面量1146

字符串类型转换1147

编写Unicode字符串1148

编写ASCII文本1148

编写非ASCII文本1149

编码和解码非ASCII文本1150

其他编码方案1151

字节串字面量:编码的文本1152

转换编码1154

在Python 2.X中编写Unicode字符串1154

源文件字符集编码声明1157

使用Python 3.X bytes对象1159

方法调用1159

序列运算1160

创建bytes对象的其他方式1161

混合字符串类型1161

使用Python 3.X/2.6+的bytearray对象1162

实际使用中的bytearray1163

Python 3.X字符串类型小结1165

使用文本文件和二进制文件1165

文本文件基础1166

Python 2.X和3.X中的文本和二进制模式1166

Python 3.X中类型和内容不匹配1168

使用Unicode文件1169

在Python 3.X中读写Unicode1169

处理Python 3.X中的BOM1171

Python 2.X中的Unicode文件1174

Unicode文件名和流1175

Python 3.X中其他字符串工具修改1176

re模式匹配模块1176

struct二进制数据模块1177

pickle对象序列化模块1179

XML解析工具1181

请留意:检验文件及更多1184

本章小结1185

本章习题1185

习题解答1186

第38章 被管理的属性1188

为什么需要被管理属性1188

插入在属性被访问时运行的代码1189

property1190

基础知识1190

第一个示例1191

计算出的属性1192

使用装饰器编写property1193

描述符1195

基础知识1195

第一个示例1198

计算出的属性1200

在描述符中使用状态信息1201

property和描述符之间的关系1204

_getattr_和_getattribute1206

基础知识1207

第一个示例1210

计算出的属性1212

比较_getattr_和_getattribute_1213

管理技术比较1214

拦截内置运算属性1217

示例:属性验证1224

使用property验证1225

使用描述符验证1227

使用_getattr_验证1231

使用_getattribute_验证1233

本章小结1234

本章习题1234

习题解答1235

第39章 装饰器1237

什么是装饰器1237

管理调用和实例1238

管理函数和类1238

使用和定义装饰器1239

为什么使用装饰器1239

基础知识1240

函数装饰器1240

类装饰器1244

装饰器嵌套1247

装饰器参数1249

装饰器管理函数和类1250

编写函数装饰器1250

跟踪调用1250

装饰器状态保持方案1252

类错误一:对方法进行装饰1256

对调用计时1262

添加装饰器参数1265

编写类装饰器1268

单例类1268

跟踪对象接口1270

类错误二:保持多个实例1274

装饰器vs管理器函数1276

为什么使用装饰器(回顾)1277

直接管理函数和类1278

示例:“私有”和“公有”属性1281

实现私有属性1281

实现细节一1283

公有声明的推广1285

实现细节二1287

开放问题1288

Python不是关于控制1296

示例:验证函数参数1296

目标1296

针对位置参数的一个基本范围测试装饰器1297

关键字和默认参数的推广1299

实现细节1302

开放问题1304

装饰器参数vs函数注解1306

其他应用:类型测试(如果你坚持)1308

本章小结1310

本章习题1310

习题解答1311

第40章 元类1320

勇敢面对还是知难而退1321

提高“魔法”等级1322

一门充满钩子的语言1323

“帮助”函数的缺点1324

元类vs类装饰器:第一回合1326

要有魔法,于是就出现了魔法1328

元类模型1328

类是类型的实例1328

元类是Type的子类1331

Class语句协议1332

声明元类1333

在Python 3.X中声明1333

在Python 2.X中声明1333

Python 3.X和2.X中的元类分发1334

编写元类1335

一个基础的元类1335

定制构建和初始化1336

其他元类编程技巧1337

继承与实例1343

元类vs父类1345

继承:完整的故事1346

元类方法1352

元类方法vs类方法1353

元类方法中的运算符重载1353

示例:向类添加方法1355

手动扩展1355

基于元类的扩展1356

元类vs类装饰器:第二回合1358

示例:对方法应用装饰器1363

用装饰器手动跟踪1363

用元类和装饰器跟踪1365

把任何装饰器应用于方法1366

元类vs类装饰器:第三回合(决战)1367

本章小结1370

本章习题1371

习题解答1371

第41章 一切美好的事物1372

Python悖论1372

关于“可选的”语言功能1373

关于令人不安的改进1374

复杂性vs功能性1375

简洁性vs精英主义1375

结束前的沉思1376

下一站1376

返场加演:打印你自己的完成证书1377

第九部分 附录1383

附录A 安装和配置1383

附录B Python 3.3的Windows启动器1398

附录C Python变化与本书1412

附录D 各部分练习题解答1425

热门推荐