Выборочная выборка экземпляра в Python: должен ли быть обновлен словарь объектов или его замена в порядке? - PullRequest
1 голос
/ 08 февраля 2010

Определяя, как объекты определенного класса должны быть выделены, через __ setstate __ , я понимаю, что это безопасно сделать

def __setstate__(self, dict_returned_by_pickle):
    self.__dict__.update(dict_returned_by_pickle)

когда маринованное состояние является словарем. Это то, что я видел в ответе здесь на stackoverflow .

Однако, это мера безопасности, принятая на случай, если self.__dict__ содержит некоторые данные при вызове __setstate__? или это просто быстрее и чище, чем делать

self.__dict__ = dict_returned_by_pickle

что заставляет старый self.__dict__ собирать мусор?

1 Ответ

0 голосов
/ 08 февраля 2010

Замена это нормально. Вот что делает шаблон borg .

Оригинальный дикт будет собираться, если на него нет других ссылок.

...