Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何重置python脚本(从内存中清除所有对象)?_Python_Python 3.x - Fatal编程技术网

如何重置python脚本(从内存中清除所有对象)?

如何重置python脚本(从内存中清除所有对象)?,python,python-3.x,Python,Python 3.x,我用python构建了一个小的文本RPG,它有一个结束状态,在该状态下,运行状况将耗尽,并返回主菜单。问题是当你开始一个新游戏时,所有的物品仍然处于先前的状态(敌人死亡,战利品收集等) 是否有任何方法可以有效地重置它,就好像我在没有实际执行的情况下终止并重新启动了脚本一样 编辑:我想知道是否有一种通用的重新初始化方法,但是如果它有帮助的话,直接的方法是用一个对象来表示你的游戏状态: game = GameEngineState() 然后交互/状态保存在该对象中。此对象在玩家按start时创建,

我用python构建了一个小的文本RPG,它有一个结束状态,在该状态下,运行状况将耗尽,并返回主菜单。问题是当你开始一个新游戏时,所有的物品仍然处于先前的状态(敌人死亡,战利品收集等)

是否有任何方法可以有效地重置它,就好像我在没有实际执行的情况下终止并重新启动了脚本一样


编辑:我想知道是否有一种通用的重新初始化方法,但是如果它有帮助的话,直接的方法是用一个对象来表示你的游戏状态:

game = GameEngineState()
然后交互/状态保存在该对象中。此对象在玩家按start时创建,并在用户开始新游戏时重新创建:

if start:
    game = GameEngineState()
这样就没有关于当前游戏进展情况的全局状态,您可以通过序列化活动游戏对象来实现保存/加载

如果需要显式释放例程(例如,加载到GPU的资源或库在关闭时需要通知),可以在游戏状态中实现close()方法,在重新启动游戏之前调用,甚至更好


如果不存在对对象的引用,对象将被回收;您是否通过仍然指定给前一状态的名称,以某种方式使其保持活动状态?如果是这样的话,它会一直存在。将任何名称放到前一个状态,它最终将被收集。您可以编写自己的重新启动脚本,只需将对象初始化为默认状态,但除此之外,不确定您是否没有提供有关如何编写内容的详细信息。不管怎样,如果没有代码,您将使这个问题的答案变得不必要的模糊。,我只是想知道是否有一个通用的方法来重新初始化所有的东西,而不是我的代码的任何特定的东西谢谢!这看起来和我想要的一模一样:)这也解决了我的保存/加载问题
with GameEngine() as game:
    # do stuff to game / read inputs / change state / let the player play..
    pass