我如何创建一个创建多个函数的循环? 我需要创建多个函数,在下面的例子中使用colX的变量。
换句话说,我将如何创建一个简单的循环...
GetProcAddress
答案 0 :(得分:2)
如果不深入研究为什么你按照自己的方式编写代码,我会准确地告诉你你所要求的内容,但要注意:它很丑陋。另外,我假设这些函数game_col[1-7]
是基于self
参数的类的成员。
class Game(object):
def __init__(self):
...
def game_col(s, i):
s.player = s.player + 1
if s.player % 2 == 0:
eval('s.window.col%d_playera()' % i)
else:
eval('s.window.col%d_playerb()' % i)
print(s.player)
for i in range(8)[1:]:
setattr(self, 'game_col%d' % i, lambda: game_col(self, i))
如果你现在声明一个这样的游戏对象:
game = Game()
您可以使用所需的功能,如下所示:
game.game_col1()
game.game_col2()
...
game.game_col7()
答案 1 :(得分:0)
虽然不能动态地实现您所要求的内容,但会生成您想要的代码:
for x in range(0, 99):
print """def game_col{0}(self):
self.player = self.player + 1
if self.player %2 == 0:
self.window.col{1}_playera()
else:
self.window.col{2}_playerb()
print(self.player) \n""".format(x, x, x)