Удаление объекта в функции - PullRequest
1 голос
/ 16 марта 2010

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

def combine(first, second):
    first.value += second.value
    del second #this doesn't work, though first.value *does* get changed

вместо того, чтобы делать что-то вроде

def combine(first, second):
    first.value += second.value

в функции и ввод del second сразу после вызова функции?

1 Ответ

4 голосов
/ 16 марта 2010

Нет. Все, что del делает против имен, это их связывание. Это только удаляет локальную ссылку. Объект будет уничтожен, если нигде нет ссылок на него или все ссылки находятся в цикле ссылок.

...