在没有 类 的单个模块中创建具有相同名称的函数组
Create groups of functions with same name within single module without classes
我正在写一个纸牌游戏模拟器。在比赛中,我希望不同的球员有不同的策略。我的想法是为给定代理指定 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):
.
.
.
到目前为止,我能想到的最佳答案是将每个代理放在一个新文件中,因为模块是对功能进行分组的一种方式。
感谢任何见解!
如果您想对相关函数进行分组,可以将它们放入字典中,如下所示:
options = {
'a' : {'sameName' : lambda x: x*2},
'b' : {'sameName' : lambda x: x**2}
}
print(options['a']['sameName'](5))
print(options['b']['sameName'](5))
我正在写一个纸牌游戏模拟器。在比赛中,我希望不同的球员有不同的策略。我的想法是为给定代理指定 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):
.
.
.
到目前为止,我能想到的最佳答案是将每个代理放在一个新文件中,因为模块是对功能进行分组的一种方式。
感谢任何见解!
如果您想对相关函数进行分组,可以将它们放入字典中,如下所示:
options = {
'a' : {'sameName' : lambda x: x*2},
'b' : {'sameName' : lambda x: x**2}
}
print(options['a']['sameName'](5))
print(options['b']['sameName'](5))