Python:使用循环创建函数

时间:2015-05-07 01:46:53

标签: python loops python-3.x

我如何创建一个创建多个函数的循环? 我需要创建多个函数,在下面的例子中使用colX的变量。

换句话说,我将如何创建一个简单的循环...

GetProcAddress

2 个答案:

答案 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)