【发布时间】:2013-03-09 17:21:56
【问题描述】:
我希望有一个类,其方法在其其他方法中被调用,但我希望这些方法可被覆盖并默认通过。有没有办法(很好地)做到这一点?
编辑:我对如何覆盖这些方法特别感兴趣。我试过def setup(self): ...、game.setup = setup。这有点工作,但它不能与“self”参数一起正常工作,抛出
setup() missing 1 required positional argument: 'self'
编辑 2:我意识到我应该继承 Game 并覆盖子类中的方法。为什么我花了这么长时间我不知道。
如果我的话很愚蠢和令人困惑,这里有一些代码:
class Game(threading.Thread):
def update(self):
pygame.display.update()
self.screen.fill(self.fillcolour)
def setup(self):
"""Placeholder for setup"""
pass
def frame(self):
"""Placeholder for frame"""
pass
def handleInputs(self):
"""Placeholder for input handling"""
for event in pygame.event.get():
if event.type == pygame.QUIT:
self.quit()
def run(self):
self.setup()
while True:
if self.FRAMERATE:
self.clock.tick(self.FRAMERATE)
self.frame()
self.update()
self.handleInputs()
【问题讨论】:
-
请注意,“类方法”在上下文中意味着相当不同的东西。你这里的只是一个方法,没有花哨的前缀。
-
@delnan -- OP 是否对“类方法”说了些什么——我所看到的只是“我想要一个类 with 方法......”。哦,没关系。我错过了标题。
-
如果你想要一个空方法,子类应该重写,你可以提出docs.python.org/2/library/…
标签: python oop class python-3.x pygame