我已经询问了一些与我正在开发的游戏相关的问题。该问题是在开发过程中出现的,但实际上与游戏本身无关。
我的代码中有一个方法(子类中的“resize”),它调用其超类中的等效方法(超类的“resize”)。
预期行为:超级调整大小调用 Super-do_rotozoom
发生了什么:称为 Sub-do_rotozoom 的超级调整大小
这是一个代码示例:
子类:
def do_rotozoom(self):
# do rotozoom stuff of subclass
def resize(self,factor):
super().resize(factor)
self.do_rotozoom()
超类:
def do_rotozoom(self):
#do rotozoom stuff of superclass
def resize(self,factor):
self.factor = factor
self.do_rotozoom()
我找到了一个解决方法,其中涉及调用super().do_rotozoom()子类方法do_rotozoom(),然后由super().resize(). 我还发现,在这种情况下我可以删除该行self.do_rotozoom()。
在这种情况下,这是一个非常简单的修复,但是在更复杂的情况下我会做什么,例如,如果我需要使用do_rotozoom()超类中的其他变量调用该方法,而不是在子类/另一个特定实现中调用该方法?换句话说,我如何能够选择在特定上下文中使用哪种方法?
通常,您只能从子类访问超方法,但不能从超类访问超方法(不是超类的方法,而是它自己的方法)。
我还没有找到更好的标题...:D
杨魅力
不负相思意
相关分类