展开全部

主编推荐语

本书详细讲解如何在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日。人民邮电出版社坚持“立足信息产业、面向现代社会、传播科学知识、服务科教兴国”,致力于通信、计算机、电子技术、教材、少儿、经管、摄影、集邮、旅游、心理学等领域的专业图书出版。