在 Python 中是否会不断创建对象以开始新游戏 hog ram?

Does endless creation of objects to start new game hog ram in Python?

我用 python 制作了第一款游戏。程序结构大致是这样的: 导入 pygame

class Game:

    def __init__(self):
        pygame.init()

    ... rest of the code

    def new_game(self):
        Game()

...rest of the code


if __name__ == "__main__":
    #while True: ###This line was added to original by mistake
    Game()

当我完成项目时,我意识到通过开始新游戏它确实创建了新的 Game 对象并从头开始游戏,但它可能仍然保留旧游戏变量、精灵等在内存中,即使那里什么都没有发生了。

我的假设是否正确?如果正确,我应该如何构建我的代码?

编辑: 根据我从评论中收集到的信息,这将是更好的结构:

class Game:

    def __init__(self):
        pygame.init()
    
    def __exit__(self):
        #Code here?
    
    ... rest of the code
   
...rest of the code
    
    
if __name__ == "__main__":
    while True:
        game = Game()
        game.run()

我建议采用不同的方法 运行 方法应该 return 游戏是否应该继续。所以你可以这样做:

if __name__ == "__main__":
    run_game = True
    while run_game:
        game = Game()
        run_game = game.run()

当游戏结束时方法run () 必须return True 如果要开始新游戏,否则它必须return False

class Game:

    def __init__(self):
        # [...]

    def run(self):

        # application loop
        running = True
        while running:
            # [...]

        # ask to restart game 
        start_new_game = # [...] set True or False 

        return start_new_game