为什么Python面向对象编程是有用的?(以一个角色扮演游戏为例)

时间:2017-12-26 http://www.longtuedu.com.cn 作者:中清龙图教育

本文面向的是那些刚刚接触编程,可能已经听说过”面向对象编程”,”OOP”,”类”,”继承/封装/多态”,以及其他计算机科学术语的,但是仍然没有真正明白如何使用OOP的朋友。在本文中,我将解释为什么使用OOP和如何轻松编码。这篇文章使用Python 3代码,但其概念适用于任何编程语言。

有两个关键的非面向对象编程概念需要马上理解:

  1. 重复的代码是一件坏事。

  2. 代码永远都在改变。

除了一些单任务和只运行一次的微小的”用完即弃”的程序,你几乎总是需要为了解决bug或增加新功能而更新你的代码。大部分编写良好的软件是那种可读性高,易于修改的软件。

如果你经常在你的程序中复制/黏贴代码,那么当你修改它的时候,就需要在很多地方做出同样的改动。这是棘手的。如果在某些地方遗漏了修改,你将到处修改bug或者实现的新功能有不一致性。重复的代码是一件坏事。程序中重复的代码将会把你置于bug和头痛之中。

函数让你摆脱重复的代码。你只需要将代码写到函数中一次,就可以在程序中的任何需要运行代码的地方调用它就可以。更新函数的代码就可以自动更新调用函数的地方。正如函数使得更新代码变得容易,使用面向对象编程技术也会组织你的代码使它更容易改变。记住代码总是在改变的。

一个角色扮演游戏栗子

大多数OOP教程都是令人作恶的。它们有”汽车”类和”鸣笛”方法,其他一些例子与新手写的或者之前接触过的实际程序都是不相关的。因此本博文将使用一个RPG类视频游戏(回忆下魔兽,宠物小精灵,或龙与地下城的世界)。我们已经习惯于将游戏中的事物想象成一些整数与字符的集合。看看Diablo(暗黑破坏神)角色屏幕或D&D角色表单上的数字:

Python课程,Python培训,Python学校—龙图教育动漫游戏开发培训

 

Python课程,Python培训,Python学校—龙图教育动漫游戏开发培训

从这些RPG视频游戏中去除图片,角色,装甲,其他对象只是变量形式的一个整数或者字符值的集合。不使用面向对象概念,你可以在Python中这样实现这些事物。



在线咨询

返回顶部