Functional programming 在没有类的单个模块中创建具有相同名称的函数组

Functional programming 在没有类的单个模块中创建具有相同名称的函数组,functional-programming,python-3.6,Functional Programming,Python 3.6,我正在写一个纸牌游戏模拟器。在比赛中,我希望不同的球员有不同的策略。我的想法是为给定代理指定两个可以导入的函数。这些函数将具有相同的签名。我知道如何使用类和继承来实现这一点,但我正在尝试完全从功能上编写这个项目。如果我在课堂上这样做的话,我有以下几点: class Agent: def __init__(self,position): self.pos = position def flip_two(self,gs): pass def regular_move(

我正在写一个纸牌游戏模拟器。在比赛中,我希望不同的球员有不同的策略。我的想法是为给定代理指定两个可以导入的函数。这些函数将具有相同的签名。我知道如何使用类和继承来实现这一点,但我正在尝试完全从功能上编写这个项目。如果我在课堂上这样做的话,我有以下几点:

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):
  .
  .
  .
到目前为止,我能想到的最佳答案是将每个代理放在一个新文件中,因为模块将是对功能进行分组的一种方式


谢谢你的洞察力

如果您希望对相关函数进行分组,可以将它们放在字典中,如下所示:

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