1
多個類我有基類:蟒蛇定義與裝飾
class BaseGameHandler(BaseRequestHandler):
name = 'Base'
def get(self):
self.render(self.name + ".html")
現在,我需要定義的這幾個子類,但事情是,他們必須有一個裝飾。等效代碼將爲:
@route('asteroid')
class AsteroidGameHandler(BaseGameHandler):
name = 'asteroid'
@route('blah')
class BlahGameHandler(BaseGameHandler):
name = 'blah'
也許還有一些。 這裏有一點背景:這是一個龍捲風網絡應用程序,@route
修飾器允許您將/blah
映射到BlahGameHandler
。此代碼映射/blah
至BlahGameHandler
和/asteroid
至AsteroidGameHandler
。
所以我想我應該在Python中使用元編程,並在飛行中定義所有這些類。我試圖不工作(和不工作我的意思是最後的web應用程序拋出兩個/asteroid
和/blah
404)以下:
game_names = ['asteroid', 'blah']
games = list([game, type('%sGameHandler' % (game.title()), (BaseGameHandler,), {'name': game})] for game in game_names)
for i in xrange(len(games)):
games[i][1] = route(games[i][0])(games[i][1])
我缺少什麼?這兩個代碼在運行時是否相同?
*不起作用*不是問題描述。出了什麼問題?你期望會發生什麼? –
你的代碼看起來像它會工作*很好*,除了不在你的全局變量中設置對象。你遇到的問題到底是什麼? –
那麼'route()'從哪裏來?也許類裝飾器有額外的要求,如類是一個模塊的全球? –