我希望有一個類在其他方法中調用的方法,但我希望這些方法是可覆蓋的,並在默認情況下通過。有沒有辦法(很好地)做到這一點?Placeholder類的方法Python 3
編輯:我特別感興趣的是我會如何去覆蓋的方法。我試過def setup(self): ...
,game.setup = setup
。這工作有點,但它不與「自我」參數正常工作,投擲 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 2013-03-09 17:31:36
@delnan - OP是否說了一些關於「類方法」的問題 - 我看到的只是「我想用*方法創建類*」。哦,沒關係。我錯過了冠軍頭銜。 – mgilson 2013-03-09 17:34:02
如果您想要一個空方法,應該覆蓋該子類,您可以引發http://docs.python.org/2/library/exceptions.html#exceptions.NotImplementedError – ninMonkey 2013-03-10 01:40:02