我希望在它的类中被其他方法覆盖的方法。有没有办法(很好地)做到这一点?在
编辑:我对如何重写这些方法特别感兴趣。我试过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()
我想你可以做些类似的事情:
这至少减少了锅炉板的代码。。。在
这称为Template Method Pattern,您的代码很好。在
但是,您可能希望为每个事件调用一个可重写的方法,而不是重写整个
handleInputs
(或者每次都必须重新实现循环)。在相关问题 更多 >
编程相关推荐