Python 如何定义一个可以再次定义以执行某项操作的函数?

Python 如何定义一个可以再次定义以执行某项操作的函数?,python,function,Python,Function,假设我想要一个名为repeatForever的静态函数,如下所示: while True: # code that gets defined here class Player(): def __init__(self, name): self.name = name def update(self): self.update_movement() self.update_collission() sel

假设我想要一个名为repeatForever的静态函数,如下所示:

while True:
    # code that gets defined here
class Player():
    def __init__(self, name):
        self.name = name

    def update(self):
        self.update_movement()
        self.update_collission()
        self.update_status()
我看到了很多函数,可以使用def关键字重新定义,比如函数是预先定义的,我只是将代码作为参数传递

def repeatForever():
    print("This should get printed forever!")
这将是相同的

while True:
    print("This should get printed forever!")

如何定义这样的函数?

正确的方法是使用一个主更新函数调用其他更新函数。根据我收集的评论,你想做一些游戏

您应该首先创建一个游戏类,该类包含更新方法和游戏中所有其他内容的实例:

class Game():
    def __init__(self):
        self.player = Player()
        self.scenary = Scenary()

    def update(self):
        self.player.update()
        self.scenary.update()


if __name__ == "__main__":

    game = Game()

    while True:
        game.update()
这是假设其他类都有自己的更新函数,看起来像这样:

while True:
    # code that gets defined here
class Player():
    def __init__(self, name):
        self.name = name

    def update(self):
        self.update_movement()
        self.update_collission()
        self.update_status()

通过这种方式,您可以在每个类中编写代码,所有内容都将通过更新函数在每个帧中保持更新。

我更新不同类的方法是获取所有类的列表,并使用for循环遍历它们,就像这样

while True:
  for c in classes:
    try:
      c.Update()
    except:
      pass

你的问题是什么?而True:不是一个函数。def关键字用于定义函数。这些不是相同的我如何定义这样的函数呢?def repeatForever:while True:Do something不,我的意思是我可以提前定义一个函数,我只需要将代码作为参数传递,就可以在while循环中执行。你可以将变量和函数传递给函数,如果这是你的意思的话?