在Python中构建弱引用缓存
我现在正在用Python编写一个项目,需要一个可以存放通用对象的缓存。我决定使用WeakValueDictionaries来实现这个功能。这些通用对象通常会被许多其他非通用对象引用。不过,我遇到的主要问题是,我不知道怎么才能让这些WeakValueDictionaries在程序的不同部分都能使用。我希望尽量不使用“全局”变量。
祝好
FrederikNS
1 个回答
4
也许我没有完全理解你的问题,但把一个弱引用值的字典提供给你的代码,其实和把其他任何类型的字典提供给你的代码没有什么不同。我会在以下地方存储对WeakValueDictionary
的引用:
- 每个实例(通过
self
引用) - 一个类(同样通过
self
引用,但在多个实例之间共享) - 一个模块(有点像全局的)
具体选择哪个地方,取决于你的代码其他部分的情况。