我做了一个小游戏,用turtle
来制作图形。这是一个模拟三角钉游戏从饼干桶,能够告诉玩家在游戏中的任何一点下一个最好的举动,以及其他功能。peg只是turtle.RawPen
的一个子类的实例,我保留了大量RawPen
的简单实例来绘制表示移动的箭头。
我注意到当我重新启动游戏(它调用turtle.bye()
)来杀死海龟窗口时,内存消耗实际上会增加,因为海龟似乎不会被删除。即使我预先调用window.clear()
,这将清除_turtles
中的window.__dict__
,仍然有对海龟的引用。我确保在重新启动期间删除对它们的所有引用,所以这不是问题所在。有没有什么方法可以真正删除海龟,这样它就可以被垃圾收集了?
删除对画布中对象的所有引用(当然包括
TurtleWindow
),然后用canvas.destroy()
销毁画布就成功了。也许还有其他的解决办法,但这是我能想到的最好的办法。我很感谢大家的帮助,因为它将在未来很好地为我服务,至少对于不是使用turtle
API创建的对象。您是否尝试删除内存消耗对象,然后使用Python的内置garbage collector接口显式地收集垃圾?
去除海龟体内的数据通常要做的是reset():
在海龟名单上,金、唐纳德、范妮和弗兰克都是海龟:
在一个特定的屏幕上还有一个方便的allturtles的代码,这是一个内置的列表,名为(screen.turtles)。所以如果你有一个屏幕叫做screen:
相关问题 更多 >
编程相关推荐