在Python中构建弱引用缓存

1 投票
1 回答
1372 浏览
提问于 2025-04-15 17:19

我现在正在用Python编写一个项目,需要一个可以存放通用对象的缓存。我决定使用WeakValueDictionaries来实现这个功能。这些通用对象通常会被许多其他非通用对象引用。不过,我遇到的主要问题是,我不知道怎么才能让这些WeakValueDictionaries在程序的不同部分都能使用。我希望尽量不使用“全局”变量。

祝好

FrederikNS

1 个回答

4

也许我没有完全理解你的问题,但把一个弱引用值的字典提供给你的代码,其实和把其他任何类型的字典提供给你的代码没有什么不同。我会在以下地方存储对WeakValueDictionary的引用:

  • 每个实例(通过self引用)
  • 一个类(同样通过self引用,但在多个实例之间共享)
  • 一个模块(有点像全局的)

具体选择哪个地方,取决于你的代码其他部分的情况。

撰写回答