2017-04-18 27 views
0

我正在寫一個紙牌遊戲模擬器。在比賽中,我希望不同的球員有不同的策略。我的想法是爲給定的代理指定2個函數,而不是可以導入的函數。這些功能將具有相同的簽名。我知道如何通過類和繼承來實現這一點,但我試圖在功能上完全編寫這個項目。這裏是我有什麼,如果我帶班做:在沒有類的單個模塊中創建具有相同名稱的函數組

class Agent: 
    def __init__(self,position): 
    self.pos = position 

    def flip_two(self,gs): 
    pass 

    def regular_move(self,gs): 
    pass 

class Random_Agent(Agent): 
    def flip_two(self,gs): 
    #some code that alters gs randomly 

    def regular_move(self,gs): 
    #some code that alters gs randomly 

class etc_Agents(Agent): 
    . 
    . 
    . 

我能想到的迄今最好的答案是把每個代理一個新的文件,因爲模塊是一種分組功能。

感謝您的任何見解!

回答

0

如果您希望將相關的功能,你可以將它們放置在一個字典,像這樣:

options = { 
    'a' : {'sameName' : lambda x: x*2}, 
    'b' : {'sameName' : lambda x: x**2} 
    } 
print(options['a']['sameName'](5)) 
print(options['b']['sameName'](5)) 
相關問題