互联网
类型
可以朗读
语音朗读
331千字
字数
2023-03-01
发行日期
展开全部
主编推荐语
本书详细讲解如何在Python中使用面向对象编程的技术,深入剖析OOP和GUI元素。
内容简介
本书首先介绍构建类和创建对象的基础知识,并结合代码讲述如何将理论付诸实践;然后讨论面向对象编程的关键概念————封装、多态性和继承,包括如何使用对象管理器创建并管理多个对象,如何通过封装对客户端代码隐藏对象的内部细节,如何使用多态性定义一个接口并在多个类中实现它,如何应用继承构建现有代码;最后讲述如何构建一款带完整的动画和声音的视频游戏,从而将所有内容整合在一起。
本书涵盖了两个功能齐全的Python代码包,它们将加速Python中图形用户界面程序的开发。
目录
- 版权信息
- 内容提要
- 作者简介
- 技术审校者简介
- 前言
- 致谢
- 服务与支持
- 第一部分 面向对象编程入门
- 第1章 过程式Python示例
- 1.1 Higher or Lower纸牌游戏
- 1.1.1 表示数据
- 1.1.2 实现
- 1.1.3 可重用的代码
- 1.2 银行账户模拟
- 1.2.1 分析必要的操作和数据
- 1.2.2 实现1:不使用函数的单个账户
- 1.2.3 实现2:使用函数的单个账户
- 1.2.4 实现3:两个账户
- 1.2.5 实现4:使用列表的多个账户
- 1.2.6 实现5:账户字典的列表
- 1.3 过程式实现的常见问题
- 1.4 面向对象解决方案:初识类
- 1.5 小结
- 第2章 通过面向对象编程模拟物体
- 2.1 构建物体的软件模型
- 状态和行为:电灯开关示例
- 2.2 类和对象简介
- 2.3 类、对象和实例化
- 2.3.1 在Python中编写类
- 2.3.2 作用域和实例变量
- 2.3.3 函数和方法的区别
- 2.3.4 从类创建对象
- 2.3.5 调用对象的方法
- 2.3.6 从相同类创建多个实例
- 2.3.7 Python数据类型被实现为类
- 2.3.8 对象的定义
- 2.4 创建一个更加复杂的类
- 2.5 将一个更加复杂的物理对象表示为类
- 2.5.1 向方法传递实参
- 2.5.2 多个实例
- 2.5.3 初始化参数
- 2.6 类的使用
- 2.7 以OOP作为解决方案
- 2.8 小结
- 第3章 对象的思维模型和“self”的意义
- 3.1 重看DimmerSwitch类
- 3.2 1号高级思维模型
- 3.3 2号深层模型
- 3.4 self的含义
- 3.5 小结
- 第4章 管理多个对象
- 4.1 银行账户类
- 4.2 导入类的代码
- 4.3 创建一些测试代码
- 4.3.1 创建多个账户
- 4.3.2 在列表中包含多个Account对象
- 4.3.3 具有唯一标识符的多个对象
- 4.3.4 创建一个交互式菜单
- 4.4 创建对象管理器
- 4.4.1 创建对象管理器
- 4.4.2 创建对象管理器的主代码
- 4.5 使用异常更好地处理错误
- 4.5.1 try和except
- 4.5.2 raise语句和自定义异常
- 4.6 在Bank程序中使用异常
- 4.6.1 使用异常的Account类
- 4.6.2 优化后的Bank类
- 4.6.3 处理异常的主代码
- 4.7 在对象列表上调用相同的方法
- 4.8 接口与实现
- 4.9 小结
- 第二部分 使用pygame创建图形用户界面
- 第5章 pygame简介
- 5.1 安装pygame
- 5.2 窗口
- 5.2.1 窗口坐标系统
- 5.2.2 像素颜色
- 5.3 事件驱动的程序
- 5.4 使用pygame
- 5.4.1 打开一个空白窗口
- 5.4.2 绘制图片
- 5.4.3 检测鼠标单击
- 5.4.4 处理键盘操作
- 5.4.5 创建基于位置的动画
- 5.4.6 使用pygame矩形
- 5.5 播放声音
- 5.5.1 播放音效
- 5.5.2 播放背景音乐
- 5.6 绘制形状
- 基本形状参考
- 5.7 小结
- 第6章 面向对象的pygame
- 6.1 使用OOP pygame创建屏保球
- 6.1.1 创建Ball类
- 6.1.2 使用Ball类
- 6.1.3 创建多个Ball对象
- 6.1.4 创建大量Ball对象
- 6.2 构建可重用的、面向对象的按钮
- 6.2.1 构建一个Button类
- 6.2.2 使用SimpleButton的主代码
- 6.2.3 创建包含多个按钮的程序
- 6.3 构建可重用的、面向对象的文本显示
- 6.3.1 显示文本的步骤
- 6.3.2 创建SimpleText类
- 6.4 包含SimpleText和SimpleButton的弹球示例
- 6.5 对比接口与实现
- 6.6 回调函数
- 6.6.1 创建回调函数
- 6.6.2 对SimpleButton使用回调函数
- 6.7 小结
- 第7章 pygame GUI小部件
- 7.1 向函数或方法传递实参
- 7.1.1 位置和关键字形参
- 7.1.2 关于关键字形参的一些说明
- 7.1.3 使用None作为默认值
- 7.1.4 选择关键字和默认值
- 7.1.5 GUI小部件中的默认值
- 7.2 pygwidgets包
- 7.2.1 设置
- 7.2.2 总体设计方法
- 7.2.3 添加图片
- 7.2.4 添加按钮、复选框和单选按钮
- 7.2.5 文本输出和输入
- 7.2.6 其他pygwidgets类
- 7.2.7 pygwidgets示例程序
- 7.3 一致的API的重要性
- 7.4 小结
- 第三部分 封装、多态性和继承
- 第8章 封装
- 8.1 函数的封装
- 8.2 对象的封装
- 对象拥有自己的数据
- 8.3 封装的含义
- 8.3.1 直接访问方式以及为什么应该避免使用这种方式
- 8.3.2 严格解释getter和setter
- 8.3.3 安全的直接访问
- 8.4 使实例变量更加私密
- 8.4.1 隐式私有
- 8.4.2 更加显式地私有
- 8.5 装饰器和@属性
- 8.6 pygwidgets类中的封装
- 8.7 一个真实的故事
- 8.8 抽象
- 8.9 小结
- 第9章 多态性
- 9.1 向现实世界的对象发送消息
- 9.2 编程中应用多态性的经典示例
- 9.3 使用pygame形状的示例
- 9.3.1 Square类
- 9.3.2 Circle类和Triangle类
- 9.3.3 创建形状的主程序
- 9.3.4 扩展模式
- 9.4 pygwidgets表现出多态性
- 9.5 运算符的多态性
- 9.5.1 魔术方法
- 9.5.2 比较运算符的魔术方法
- 9.5.3 包含魔术方法的Rectangle类
- 9.5.4 使用魔术方法的主程序
- 9.5.5 数学运算符的魔术方法
- 9.5.6 向量示例
- 9.6 创建对象中值的字符串表示
- 9.7 包含魔术方法的Fraction类
- 9.8 小结
- 第10章 继承
- 10.1 面向对象编程中的继承
- 10.2 实现继承
- 10.3 Employee和Manager示例
- 10.3.1 基类Employee
- 10.3.2 子类Manager
- 10.3.3 测试代码
- 10.4 客户端眼中的子类
- 10.5 现实世界的继承示例
- 10.5.1 InputNumber
- 10.5.2 DisplayMoney
- 10.5.3 示例用法
- 10.6 从同一个基类继承多个类
- 10.7 抽象类和抽象方法
- 10.8 pygwidgets如何使用继承
- 10.9 类的层次
- 10.10 使用继承编程的困难
- 10.11 小结
- 第11章 管理对象使用的内存
- 11.1 对象的生存期
- 11.1.1 引用计数
- 11.1.2 垃圾回收
- 11.2 类变量
- 11.2.1 类变量常量
- 11.2.2 将类变量用于计数
- 11.3 综合运用:气球示例程序
- 11.3.1 常量模块
- 11.3.2 主程序代码
- 11.3.3 气球管理器
- 11.3.4 Balloon类和对象
- 11.4 使用slots管理内存
- 11.5 小结
- 第四部分 在游戏开发中使用OOP
- 第12章 纸牌游戏
- 12.1 Card类
- 12.2 Deck类
- 12.3 Higher or Lower游戏
- 12.3.1 主程序
- 12.3.2 Game对象
- 12.4 使用__name__进行测试
- 12.5 其他纸牌游戏
- 12.5.1 Blackjack牌堆
- 12.5.2 使用非标准牌堆的游戏
- 12.6 小结
- 第13章 定时器
- 13.1 定时器演示程序
- 13.2 实现定时器的3种方法
- 13.2.1 统计帧数
- 13.2.2 定时器事件
- 13.2.3 通过计算经过的时间来创建定时器
- 13.3 安装pyghelpers
- 13.4 Timer类
- 13.5 显示时间
- 13.5.1 CountUpTimer
- 13.5.2 CountDownTimer
- 13.6 小结
- 第14章 动画
- 14.1 构建动画类
- 14.1.1 SimpleAnimation类
- 14.1.2 SimpleSpriteSheetAnimation类
- 14.1.3 将两个类合并起来
- 14.2 pygwidgets中的动画类
- 14.2.1 Animation类
- 14.2.2 SpriteSheetAnimation类
- 14.2.3 公共基类PygAnimation
- 14.2.4 示例动画程序
- 14.3 小结
- 第15章 场景
- 15.1 状态机方法
- 15.2 状态机的一个pygame示例
- 15.3 用于管理许多场景的场景管理器
- 15.4 使用场景管理器的一个示例程序
- 15.4.1 主程序
- 15.4.2 构建场景
- 15.4.3 一个典型场景
- 15.5 使用场景的Rock,Paper,Scissors
- 15.6 场景之间的通信
- 15.6.1 从目标场景请求信息
- 15.6.2 向目标场景发送信息
- 15.6.3 向所有场景发送信息
- 15.6.4 测试场景之间的通信
- 15.7 场景管理器的实现
- 15.7.1 run()方法
- 15.7.2 主方法
- 15.7.3 场景之间的通信
- 15.8 小结
- 第16章 完整的Dodger游戏
- 16.1 模态对话框
- 16.1.1 Yes/No和警告对话框
- 16.1.2 Answer对话框
- 16.2 构建完整的Dodger游戏
- 16.2.1 游戏概述
- 16.2.2 实现
- 16.2.3 扩展游戏
- 16.3 小结
- 第17章 设计模式及收尾
- 17.1 模型-视图-控制器
- 17.1.1 文件显示示例
- 17.1.2 统计显示示例
- 17.1.3 MVC模式的优势
- 17.2 小结
展开全部
出版方
人民邮电出版社
人民邮电出版社是工业和信息化部主管的大型专业出版社,成立于1953年10月1日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。