Есть несколько потоков в сборке мусора Python в SO, и после прочтения около пяти, а также некоторых документов на линии, я все еще не уверен, как работает сборка мусора и как я должен управлять объектами, которые я не использую. На самом деле, где-то я читал, что ничего не нужно делать с сбором мусора, другие говорят, что нужно del
объектов, а другие снова объясняют, что удаление ссылки на объект достаточно, чтобы Python собирал его как мусор.
Итак, рискуя создать дубликат, я снова задам вопрос, но по-другому, надеясь получить более полную и более ясную информацию.
В моем случае я хочу сделать небольшую симуляцию с объектами, представляющими людей. Будет создано несколько экземпляров класса Person()
. Он должен существовать в течение некоторого времени, пока он фактически "не умрет", пока будут созданы другие экземпляры.
Теперь, как сделать этот Person()
экземпляр "die" (предполагая, что многие из этих экземпляров будут созданы, и я не хочу, чтобы эти экземпляры зависали, как призраки)?
Есть несколько способов, которыми я могу ссылаться на объект:
john = Person('john')
или
people = []
people.append(Person('john'))
или
people = {}
people['john'] = Person('john')
Каков наилучший способ сохранить мою программу в чистоте, оптимально освободив ресурсы? И как лучше всего ссылаться на мой объект, чтобы я мог управлять удалением объекта?