计算机
类型
可以朗读
语音朗读
354千字
字数
2024-08-01
发行日期
展开全部
主编推荐语
一本全面介绍python面向对象编程的图书。
内容简介
本书共分为4部分。第1章至第6章深讲解了面向对象编程的核心原则和概念,以及它们在Python中的实现方式。第7章至第9章仔细探讨了Python的数据结构、内置类和方法等,以及如何从面向对象编程的角度行分析和应用。第10章至第12章探讨了设计模式及其在Python中的实现。第13章和第14章涵盖了测试和并发两个重要主题。
全书以一个机器学习分类算法的实现案例贯穿始终,并不断探讨各种实现方式的优劣。
目录
- 版权信息
- 内容简介
- 贡献者
- 译者序
- 前言
- 第1章 面向对象设计
- 1.1 面向对象简介
- 1.2 对象和类
- 1.3 定义属性和行为
- 1.3.1 用数据描述对象的状态
- 1.3.2 行为就是动作
- 1.4 隐藏细节并创建公共接口
- 1.5 组合
- 1.6 继承
- 1.6.1 继承提供抽象
- 1.6.2 多重继承
- 1.7 案例学习
- 1.7.1 简介和问题概述
- 1.7.2 上下文视图
- 1.7.3 逻辑视图
- 1.7.4 过程视图
- 1.7.5 开发视图
- 1.7.6 物理视图
- 1.7.7 结论
- 1.8 回顾
- 1.9 练习
- 1.10 总结
- 第2章 Python的对象
- 2.1 类型提示
- 2.2 创建Python的类
- 2.2.1 添加属性
- 2.2.2 让它做点什么
- 2.2.3 初始化对象
- 2.2.4 类型提示和默认值
- 2.2.5 使用文档字符串
- 2.3 模块和包
- 2.3.1 组织模块
- 2.3.2 组织模块内容
- 2.4 谁可以访问我的数据
- 2.5 第三方库
- 2.6 案例学习
- 2.6.1 逻辑视图
- 2.6.2 样本和状态
- 2.6.3 样本状态转换
- 2.6.4 类的职责
- 2.6.5 TrainingData类
- 2.7 回顾
- 2.8 练习
- 2.9 总结
- 第3章 当对象相似时
- 3.1 基本继承
- 3.1.1 扩展内置对象
- 3.1.2 重写和super
- 3.2 多重继承
- 3.2.1 钻石型继承问题
- 3.2.2 不同集合的参数
- 3.3 多态
- 3.4 案例学习
- 3.4.1 逻辑视图
- 3.4.2 另一种距离算法
- 3.5 回顾
- 3.6 练习
- 3.7 总结
- 第4章 异常捕获
- 4.1 抛出异常
- 4.1.1 抛出一个异常
- 4.1.2 异常的作用
- 4.1.3 处理异常
- 4.1.4 异常的层级
- 4.1.5 定义我们自己的异常
- 4.1.6 异常并不是例外
- 4.2 案例学习
- 4.2.1 上下文视图
- 4.2.2 过程视图
- 4.2.3 什么可能出错
- 4.2.4 错误的行为
- 4.2.5 通过CSV文件创建样本
- 4.2.6 验证枚举值
- 4.2.7 读取CSV文件
- 4.2.8 不要重复你自己
- 4.3 回顾
- 4.4 练习
- 4.5 总结
- 第5章 何时使用面向对象编程
- 5.1 将对象看作对象
- 5.2 通过属性向类数据添加行为
- 5.2.1 属性的细节
- 5.2.2 装饰器
- 5.2.3 决定何时使用属性
- 5.3 管理器对象
- 5.3.1 删除重复的代码
- 5.3.2 实践
- 5.4 案例学习
- 5.4.1 输入验证
- 5.4.2 输入分块
- 5.4.3 样本的类层级
- 5.4.4 purpose枚举类
- 5.4.5 Property setters
- 5.4.6 重复的if语句
- 5.5 回顾
- 5.6 练习
- 5.7 总结
- 第6章 抽象基类和运算符重载
- 6.1 创建抽象基类
- 6.1.1 collections模块中的抽象基类
- 6.1.2 抽象基类和类型提示
- 6.1.3 collections.abc模块
- 6.1.4 创建自己的抽象基类
- 6.1.5 揭开魔法的神秘面纱
- 6.2 运算符重载
- 6.3 扩展内置类
- 6.4 元类
- 6.5 案例学习
- 6.5.1 用两个子列表扩展list类
- 6.5.2 分割的洗牌策略
- 6.5.3 分割的增量策略
- 6.6 回顾
- 6.7 练习
- 6.8 总结
- 第7章 Python的数据结构
- 7.1 空对象
- 7.2 元组和命名元组
- 7.3 数据类
- 7.4 字典
- 7.4.1 字典的用例
- 7.4.2 使用defaultdict
- 7.5 列表
- 7.6 集合
- 7.7 3种队列
- 7.8 案例学习
- 7.8.1 逻辑模型
- 7.8.2 冻结的数据类
- 7.8.3 NamedTuple类
- 7.8.4 结论
- 7.9 回顾
- 7.10 练习
- 7.11 总结
- 第8章 面向对象编程和函数式编程
- 8.1 Python的内置函数
- 8.1.1 len()函数
- 8.1.2 reversed()函数
- 8.1.3 enumerate()函数
- 8.2 方法重载的另一种方式
- 8.2.1 参数的默认值
- 8.2.2 可变参数列表
- 8.2.3 参数解包
- 8.3 函数也是对象
- 8.3.1 函数对象和回调函数
- 8.3.2 用函数给类打补丁
- 8.3.3 可调用对象
- 8.4 文件I/O
- 8.5 案例学习
- 8.5.1 处理概述
- 8.5.2 分割数据
- 8.5.3 重新思考分类
- 8.5.4 partition()函数
- 8.5.5 一次性分割
- 8.6 回顾
- 8.7 练习
- 8.8 总结
- 第9章 字符串、序列化和文件路径
- 9.1 字符串
- 9.1.1 字符串操作
- 9.1.2 字符串格式化
- 9.1.3 字符串是Unicode
- 9.2 正则表达式
- 9.2.1 模式匹配
- 9.2.2 用正则表达式解析信息
- 9.3 文件系统路径
- 9.4 序列化对象
- 9.4.1 定制pickle
- 9.4.2 用JSON序列化对象
- 9.5 案例学习
- 9.5.1 CSV格式设计
- 9.5.2 CSV字典阅读器
- 9.5.3 CSV列表阅读器
- 9.5.4 JSON序列化
- 9.5.5 用换行符分隔的JSON
- 9.5.6 JSON验证
- 9.6 回顾
- 9.7 练习
- 9.8 总结
- 第10章 迭代器模式
- 10.1 设计模式简介
- 10.2 迭代器
- 10.3 推导式
- 10.3.1 列表推导式
- 10.3.2 集合和字典推导式
- 10.3.3 生成器表达式
- 10.4 生成器函数
- 10.4.1 通过另一个可迭代对象产生元素
- 10.4.2 生成器堆栈
- 10.5 案例学习
- 10.5.1 相关集合知识
- 10.5.2 多分区
- 10.5.3 测试
- 10.5.4 基本的KNN算法
- 10.5.5 使用bisect模块的KNN
- 10.5.6 使用headq模块的KNN
- 10.5.7 结论
- 10.6 回顾
- 10.7 练习
- 10.8 总结
- 第11章 通用设计模式
- 11.1 装饰器模式
- 11.1.1 装饰器模式示例
- 11.1.2 Python中的装饰器
- 11.2 观察者模式
- 11.3 策略模式
- 11.3.1 策略模式示例
- 11.3.2 Python中的策略模式
- 11.4 命令模式
- 11.5 状态模式
- 11.5.1 状态模式示例
- 11.5.2 状态模式与策略模式
- 11.6 单例模式
- 11.7 案例学习
- 11.8 回顾
- 11.9 练习
- 11.10 总结
- 第12章 高级设计模式
- 12.1 适配器模式
- 12.2 外观模式
- 12.3 享元模式
- 12.3.1 Python中的享元模式示例
- 12.3.2 包含多条消息的缓冲区
- 12.3.3 使用Python的__slots__优化内存
- 12.4 抽象工厂模式
- 12.4.1 抽象工厂模式示例
- 12.4.2 Python中的抽象工厂模式
- 12.5 组合模式
- 12.6 模板模式
- 12.7 案例学习
- 12.8 回顾
- 12.9 练习
- 12.10 总结
- 第13章 测试面向对象的程序
- 13.1 为什么要测试
- 13.1.1 测试驱动开发
- 13.1.2 测试目标
- 13.1.3 测试模式
- 13.2 使用unittest进行单元测试
- 13.3 使用pytest进行单元测试
- 13.3.1 pytest的设置和清理函数
- 13.3.2 pytest用于设置和清理的fixture
- 13.3.3 更高阶的fixture
- 13.3.4 用pytest跳过测试
- 13.4 使用Mock模拟对象
- 13.4.1 其他打补丁技术
- 13.4.2 sentinal对象
- 13.5 进行多少测试才是足够的
- 13.6 开发和测试
- 13.7 案例学习
- 13.7.1 距离算法类的单元测试
- 13.7.2 Hyperparameter类的单元测试
- 13.8 回顾
- 13.9 练习
- 13.10 总结
- 第14章 并发
- 14.1 线程
- 14.2 多进程
- 14.2.1 多进程池
- 14.2.2 队列
- 14.2.3 多进程的问题
- 14.3 future
- 14.4 AsyncIO
- 14.4.1 AsyncIO实战
- 14.4.2 读取AsyncIO future
- 14.4.3 网络AsyncIO
- 14.4.4 日志编写演示
- 14.4.5 AsyncIO客户端
- 14.5 哲学家用餐问题
- 14.6 案例学习
- 14.7 回顾
- 14.8 练习
- 14.9 总结
展开全部
出版方
电子工业出版社
电子工业出版社成立于1982年10月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。