【问题标题】:VPython 6 - Object won't deleteVPython 6 - 对象不会删除
【发布时间】:2018-02-24 21:12:57
【问题描述】:

我有一个 3D 弹性碰撞模拟。我想通过按下按钮从我的程序中清除所有球体对象。文档表明我应该执行以下操作:

def clear_balls():
   for ball in balls:
      ball.visible = False
      del ball

这成功地使球在场景中不可见,但它们仍然占用内存并与仍然存在的球发生碰撞。我希望它完全删除。尝试使用唯一的球名称,这不是列表的一部分,因为有些人建议仍然会导致相同的问题。

【问题讨论】:

    标签: python python-2.7 vpython


    【解决方案1】:

    del ball 没有按照你的想法做,因为balls 仍然持有对该对象的引用。您需要清空balls 列表:

    def clear_balls():
        for ball in balls:
            ball.visible = False
         balls[:] = []
    

    【讨论】:

      猜你喜欢
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      • 2017-06-26
      • 1970-01-01
      • 2018-11-09
      • 2018-08-28
      • 1970-01-01
      • 2018-11-21
      相关资源
      最近更新 更多