展开全部

主编推荐语

一本全面介绍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月,是国务院独资、工信部直属的中央级科技与教育出版社,是专业的信息技术知识集成和服务提供商。经过三十多年的建设与发展,已成为一家以科技和教育出版、期刊、网络、行业支撑服务、数字出版、软件研发、软科学研究、职业培训和教育为核心业务的现代知识服务集团。出版物内容涵盖了电子信息技术的各个分支及工业技术、经济管理、科普与少儿、社科人文等领域,综合出版能力位居全国出版行业前列。