《易学Python》—— 6.2 面向对象设计

简介:

本节书摘来自异步社区《易学Python》一书中的第6章,第6.2节,作者[澳]Anthony Briggs,王威,袁国忠 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

6.2 面向对象设计

很多人都喜欢面向对象编程,其中的原因之一是,对象通常对应于现实世界的东西,这让您在开发程序期间很容易想见它们将如何交互。编写管理财务的程序时,您可能创建Account、Expense、Income和Transaction类;编写车间控制程序时,您可能创建Component、ConveyorBelt、Assembly(即组装在一起的多个部件)和AssemblyLine。

咱们回过头去更深入地思考一下冒险游戏。这种游戏都包含什么呢?传统上,玩家是无畏的冒险家,为财宝、名声和荣誉深入地牢或充斥怪物的洞穴。图6.2以草图方式描绘了本章要编写的游戏,您可以使用它向朋友说明这个游戏。


screenshot

其中的基本元素是洞穴,而不是整个洞穴系统。您可能受第2章介绍的列表和函数的误导,错误地认为洞穴系统是重要的组成部分,但从正确层面(洞穴及其内部的东西)着眼,可让设计更整洁得多。程序清单6.2演示了如何编写洞穴类,您应将其放在文件caves.py中,否则本章后面的有些代码将不能正确运行。

程序清单6.2 面向对象程度更高的设计


screenshot


screenshot

screenshot

screenshot

这里的重点是,程序清单6.1的多少代码被替换掉了。Caves类有6个彼此调用的方法,这里用一个类和一个外部函数取而代之。第2章说过,如果代码更短,更简单,通常说明选择的道路正确;也就是说,这个面向对象设计非常适合本章的冒险游戏。下面着手解决程序的下一部分:处理玩家输入。

相关文章
|
1月前
|
Python
python-面向对象
python-面向对象
15 2
|
5月前
|
Python
74 python - 打飞机案例(显示控制玩具飞机-面向对象)
74 python - 打飞机案例(显示控制玩具飞机-面向对象)
32 0
|
1月前
|
Java 程序员 数据安全/隐私保护
Python教程第6章 | Python面向对象
Python面向对象概念、类的定义和调用、类方法、修改和增加类属性、类和对象、初始化函数、类的继承、类的多态、类的访问控制
43 0
|
1月前
|
Python
|
2月前
|
机器学习/深度学习 人工智能 IDE
Python是一种高级、解释型、交互式和面向对象的脚本语言
Python是一种高级、解释型、交互式和面向对象的脚本语言
25 2
|
3月前
|
Python
【Python30天速成计划】6. 面向对象的继承和多态
【Python30天速成计划】6. 面向对象的继承和多态
|
3月前
|
Python
python 面向对象之继承
python 面向对象之继承
|
3月前
|
Python
Python基础学习 -- 面向对象
Python基础学习 -- 面向对象
18 0
|
3月前
python-pathlib模块使用 --- 面向对象的文件系统路径
python-pathlib模块使用 --- 面向对象的文件系统路径
20 0
|
3月前
|
算法 Python 容器
Python之变量命名、运算符和面向对象
【1月更文挑战第1天】 1、注释 注释分为单行注释和多行注释两种,单行注释用#表示,多行注释用(三个双引号"“”“”")或‘(三个单引号’‘’‘’')表示。如下所示:
102 2
Python之变量命名、运算符和面向对象