他のメソッドで呼び出されるメソッドを持つクラスが欲しいのですが、それらのメソッドを上書き可能にして、デフォルトで渡すようにしたいのです。これを(うまく)行う方法はありますか?
編集:私は、メソッドをどのように正確に上書きするかに特に興味があります。私は試しましたdef setup(self): ...
、game.setup = setup
。これは多少機能しますが、「self」パラメータでは正しく機能せず、
setup() missing 1 required positional argument: 'self'
Game
編集2:サブクラスを作成し、サブクラスのメソッドを上書きする必要があることに気づきました。なんでこんなに時間がかかったのかわからない。
私の言葉が愚かで紛らわしい場合のために、代わりにいくつかのコードがあります:
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()