Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在python中构建weakref缓存_Python_Caching_Weak References - Fatal编程技术网

在python中构建weakref缓存

在python中构建weakref缓存,python,caching,weak-references,Python,Caching,Weak References,我目前正在用python编写一个项目,其中我需要一种通用对象的缓存,我已经决定为此使用WeakValue字典。这些通用对象通常被许多其他非通用对象引用。不过,我的主要问题是,我似乎不知道如何将这些弱值词典提供给程序的许多不同部分。如果可能的话,我宁愿不使用“全局”变量 致意 FrederikNS也许我不理解你的问题,但是为你的代码创建一个弱引用值的字典与为你的代码创建一个其他可用值的字典并没有什么不同。我会将对WeakValueDictionary的引用存储在: 每个实例(通过self引用)

我目前正在用python编写一个项目,其中我需要一种通用对象的缓存,我已经决定为此使用WeakValue字典。这些通用对象通常被许多其他非通用对象引用。不过,我的主要问题是,我似乎不知道如何将这些弱值词典提供给程序的许多不同部分。如果可能的话,我宁愿不使用“全局”变量

致意


FrederikNS

也许我不理解你的问题,但是为你的代码创建一个弱引用值的字典与为你的代码创建一个其他可用值的字典并没有什么不同。我会将对
WeakValueDictionary
的引用存储在:

  • 每个实例(通过
    self
    引用)
  • 类(也通过
    self
    引用,但在实例之间共享)
  • 一个模块(全局的,类的)

取决于代码的其余部分最有意义的内容。

也许我不理解您的问题,但是为代码提供弱引用值的字典与为代码提供其他任何内容的字典没有什么区别。我会将对
WeakValueDictionary
的引用存储在:

  • 每个实例(通过
    self
    引用)
  • 类(也通过
    self
    引用,但在实例之间共享)
  • 一个模块(全局的,类的)

取决于代码的其余部分最有意义的内容。

您是否尝试将它们持久化到数据库或文件系统中?也许是使用pickle?问题是,这些通用对象是从本地数据库创建的,因此我希望这些字典保留在内存中。我只是想要一种在执行过程中从程序中的多个位置访问它的方法。您是否尝试将它们持久化到数据库或文件系统中?也许是使用pickle?问题是,这些通用对象是从本地数据库创建的,因此我希望这些字典保留在内存中。我只是想要一种在执行过程中从程序的多个地方访问它的方法。你完全理解我想要的,我的主要错误是我使用了类变量,我需要模块一,感谢你让我意识到你完全理解我想要的,我的主要错误是我使用了类变量,在我需要第一单元的地方,谢谢你让我意识到这一点