VPython 6 — объект не удаляется

У меня есть трехмерное моделирование упругого столкновения. Я хотел бы очистить все объекты сферы из моей программы нажатием кнопки. В документации указано, что я должен сделать следующее:

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

Это успешно делает шары невидимыми в сцене, но они все еще занимают память и сталкиваются с шарами, которые все еще существуют. Я хочу, чтобы это было полностью удалено. Попытка сделать это с уникальным именем мяча не входит в список, поскольку некоторые предполагают, что это все равно приводит к той же проблеме.


person Luke I    schedule 24.02.2018    source источник


Ответы (1)


del ball не делает то, что вы думаете, потому что balls по-прежнему содержит ссылку на объект. Вам нужно очистить список balls:

def clear_balls():
    for ball in balls:
        ball.visible = False
     balls[:] = []
person Stephen Rauch    schedule 24.02.2018