0
我想写一个持久化备忘录(记忆到磁盘)的装饰器。因为我想为许多函数使用这个装饰器,所以我必须决定为这些函数保存记忆数据的位置。我用Google搜索了一圈,发现两种解决方案:python持久化备忘录的目标
- 让功能决定在哪里通过函数名存储memoizing数据
- 自动确定在何处存储数据
然而,这两种解决方案,每个功能都必须在名称(或目的地)碰撞的情况下“互相”知道,这是一种不好的设计。
因此,我的问题是,如何避免这种碰撞?
必须解决类似问题的[pickle module](https://docs.python.org/3/library/pickle.html)使用酸洗功能的“完全限定名称”。 –
有趣的问题,但我没有答案。不过,我有几条评论。 :) 1.您装饰的功能不应该知道它们是装饰的,所以它们不应包含与memoization目的地相关的代码或数据。 OTOH,你的装饰器可以根据'__file__'和函数的'.__ name__'选择一个默认目的地,但也可以接受一个参数来选择不同的目标路径,或者修改默认目标路径。 2.注意确保您的程序可以处理多次同时运行。 –