Python 如何定义一个可以再次定义以执行某项操作的函数?
假设我想要一个名为repeatForever的静态函数,如下所示: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
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循环中执行。你可以将变量和函数传递给函数,如果这是你的意思的话?