【发布时间】:2013-07-19 09:32:02
【问题描述】:
我正在 pygame 中制作游戏,并且我创建了一个“抽象”类,它的唯一工作是存储给定关卡的精灵(目的是将这些关卡对象放在列表中以方便玩家移动从一个级别到另一个级别)
好的,那么问题来了。如果我能在 Python 中做同样的事情(Java 的代码curtesy):
Object object = new Object (){
public void overriddenFunction(){
//new functionality
};
};
与在游戏中构建关卡相比,我只需要使用精灵所在位置的信息覆盖构造函数(或负责构建关卡的类/实例方法),因为为游戏中的每个关卡都不是那么优雅的答案。或者,我必须在关卡类中创建方法,然后在实例化关卡对象后构建关卡,并根据需要放置精灵。
因此,在一位更坚定的开发人员继续谈论这可能是多么反 python(我已经阅读了足够多的本网站以从 Python 专家那里获得这种氛围)之前,请告诉我它是否可行。
【问题讨论】:
-
当你说“'抽象'类”时,你的意思是你实际上使用了
abc.ABCMeta和abc.abstractmethod,或者你在这里做了自己的事情 -
如果我错了,请有人纠正我。但是,是的,这实际上创建了一个匿名类。
标签: python oop object polymorphism overriding