Создание кеша слабой ссылки в python - PullRequest
0 голосов
/ 23 декабря 2009

В настоящее время я пишу проект на python, где мне нужен своего рода кеш общих объектов, я остановился на использовании WeakValueDictionaries для этого. На эти общие объекты часто ссылаются многие другие неуниверсальные объекты. Моя главная проблема заключается в том, что я не могу обернуть голову в способ сделать эти WeakValueDictionaries доступными для многих частей программы. Я бы предпочел не использовать «глобальные» переменные, если это возможно.

С наилучшими пожеланиями

FrederikNS

1 Ответ

2 голосов
/ 23 декабря 2009

Возможно, я не понимаю ваш вопрос, но создание словаря со слабо ссылочными значениями, доступного для вашего кода, на самом деле ничем не отличается от создания словаря чего-либо еще доступного для вашего кода. Я бы сохранил ссылку на WeakValueDictionary на:

  • каждый экземпляр (ссылка через self)
  • класс (также ссылается через self, но совместно используется экземплярами)
  • модуль (глобальный, вид)

в зависимости от того, что имело смысл с учетом остальной части вашего кода.

...