【541页新书pdf】通过构建游戏和GUI掌握面向对象的Python
这是一本中级文本,所以有一些更高级的主题我不会涉及。例如,为了保持本书的实用性,我不会经常详细讨论 Python 的内部实现。为了简单明了,并把重点放在掌握OOP技术上,书中的例子都是用有限的语言子集编写的。在Python中还有更高级、更简洁的编码方式,这超出了本书的范围。
我将以一种基本独立于语言的方式介绍OOP的基本细节,但会指出Python和其他OOP语言之间存在差异的地方。在通过本书学习了OOP风格编码的基础知识后,如果你愿意,你应该能够轻松地将这些技术应用于其他OOP语言。
面向对象编程 (OOP) 是将数据和代码组合成内聚单元的范式,允许你以不同的方式思考计算问题并以高度可重用的方式解决它们。面向中级程序员,面向对象的 Python是一个动手教程,深入 OOP 的核心原则,向你展示如何使用封装、多态性和继承来使用 Python 编写游戏和应用程序。
本书首先展示了过程编程中固有的关键问题,然后引导你了解在 Python 中创建类和对象的基础知识。你将通过开发按钮、文本字段和其他在事件驱动环境中的标准 GUI 元素来构建此基础。你还将使用许多真实世界的代码示例和两个基于 pygame 的包来帮助将理论转化为实践,使你能够轻松编写交互式游戏和应用程序,并完成 GUI 小部件、动画、多个场景和可重用的游戏逻辑。在最后一章中,你将通过构建一个功能齐全的视频游戏来整合所有内容,该游戏包含本书中介绍的许多 OOP 技术和 GUI 元素。
你将学习如何:
使用对象管理器对象创建和管理多个对象 使用封装从客户端代码中隐藏对象的内部细节 使用多态定义一个接口并在多个类中实现 应用继承来构建现有代码
目录
本书分为四个部分。
第一部分介绍了面向对象编程。
第1章对使用过程性编程的编码进行了回顾。我将告诉你如何实现一个基于文本的纸牌游戏,并模拟银行对一个或多个账户进行操作。在此过程中,我讨论了程序性方法的常见问题。 第2章介绍了类和对象,并展示了你如何用类来表示真实世界的对象,如电灯开关或电视遥控器。你会看到面向对象的方法是如何解决第一章中强调的问题的。 第 3 章介绍了两种心理模型,你可以用它们来思考在 Python 中创建对象时幕后发生了什么。我们将使用 Python Tutor 来浏览代码,看看对象是如何创建的。 第4章通过引入对象管理器对象的概念,演示了处理同一类型的多个对象的标准方法。我们将使用类来扩展银行账户的模拟,我将向你展示如何使用异常来处理错误。
第二部分着重介绍用pygame构建图形用户界面。
第5章介绍了pygame包和事件驱动的编程模型。我们将建立几个简单的程序,让你开始在窗口中放置图形并处理键盘和鼠标输入,然后开发一个更复杂的弹球程序。 第6章对在pygame程序中使用OOP进行了更详细的介绍。我们将以OOP的方式重写弹球程序,并开发一些简单的GUI元素。 第7章介绍了pygwidgets模块,它包含了许多标准GUI元素(按钮、复选框等)的完整实现,每一个都是作为一个类来开发的。
第三部分深入探讨了OOP的主要原则。
第8章讨论了封装,它涉及到从外部代码中隐藏实现细节,并将所有相关方法放在一个地方:一个类。 第9章介绍了多态性--即多个类可以有相同名称的方法,并展示了它如何使你能够调用多个对象中的方法,而不必知道每个对象的类型。我们将建立一个Shapes程序来演示这个概念。 第10章介绍了继承,它允许你创建一组子类,这些子类都使用基类中的通用代码,而不是用类似的类来重新发明车轮。我们将看一些现实世界的例子,在这些例子中,继承可以派上用场,比如实现一个只接受数字的输入字段,然后重写我们的Shapes示例程序以使用这一特性。 第11章是本书的收尾部分,讨论了一些额外的重要的OOP主题,主要与内存管理有关。我们将研究对象的生命周期,作为一个例子,我们将建立一个小型的吹气球游戏。
第四部分探讨了与在游戏开发中使用OOP有关的几个主题。
第12章演示了我们如何将第1章中开发的纸牌游戏重建为一个基于Pygame的GUI程序。我还向你展示了如何建立可重用的Deck和Card类,你可以在你创建的其他纸牌游戏中使用。 第13章涉及计时。我们将开发不同的定时器类,使程序在持续运行的同时,还能检查给定的时间限制。 第14章解释了你可以用来显示图像序列的动画类。我们将研究两种动画技术:从独立的图像文件集合中建立动画,以及从单个精灵表文件中提取和使用多个图像。 第15章解释了状态机和场景管理器的概念,前者表示并控制你的程序流程,后者你可以用它来建立一个具有多个场景的程序。为了演示这些东西的使用,我们将建立两个版本的 "石头、布、剪子 "游戏。 第16章讨论了不同类型的模态对话框,这是另一个重要的用户交互特性。然后,我们通过构建一个全功能的基于OOP的视频游戏《Dodger》来演示书中描述的许多技术。 第17章介绍了设计模式的概念,重点是模型-视图-控制器模式,然后介绍了一个掷骰子的程序,该程序使用这种模式让用户以许多不同的方式来可视化数据。该章最后对本书进行了简短的总结。
本书完整代码传送门:
https://github.com/IrvKalb/Object-Oriented-Python-Code/
便捷阅读
541页2022新书《面向对象的Python:通过构建游戏和 GUI 掌握 OOP》高清pdf下载:
文末点击“喜欢作者”,打赏2元后将会自动回复下载链接~
🏴☠️宝藏级🏴☠️ 原创公众号『数据STUDIO』内容超级硬核。公众号以Python为核心语言,垂直于数据科学领域,包括可戳👉Python|MySQL|数据分析|数据可视化|机器学习与数据挖掘|爬虫 等,从入门到进阶!
长按👇关注- 数据STUDIO -设为星标,干货速递