我是否应该将临时文件存储在\uu pycache\uuu文件夹中?

2024-04-25 05:12:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在为python3编写一个回忆录装饰器。计划是在一个临时文件中pickle缓存,以节省多次执行的时间。在

如果包含修饰函数的文件发生了更改,则缓存将被删除,就像UuPyCache\中的.pyc文件一样。因此,我开始考虑通过将pickled缓存放在优pycache_uuu中来整理用户的项目目录。在这个目录中存储文件有副作用吗?是误导还是混淆?在


Tags: 文件函数目录时间装饰uuupicklepython3
1条回答
网友
1楼 · 发布于 2024-04-25 05:12:45

你要么。。。在

  • 让所有缓存都在运行时进行:这超出了您的目的。然而,这是唯一一种根本不接触文件系统的方法。在
  • 专用一个特殊的文件夹,比如__memo__或其他东西:这将允许您在多个执行之间进行缓存。但是,您将“污染”应用程序的文件结构。在

你应该永远不要搞砸__pycache__的理由:

  • __pycache__是CPython特有的。虽然很可能是您现在使用的实现,但是假设每个人都这样做并没有任何好的理由,这是不可移植的/安全的/好的实践。在
  • __pycache__是一个透明的优化,也就是说,没有人应该关心它是否存在。这是CPython团队的一个设计决定,因此您不应该回避它。在
  • 由于上述原因,如果用户愿意,可以禁用上述目录。例如,在CPython中,如果您做了python3 -B myapp.py,那么如果不存在__pycache__,则不会创建它,否则将被忽略。在
  • 由于以上两点,用户经常删除__pycache__,原因有很多。至少我知道。在
  • 因为“它不会污染应用程序的文件结构”而弄乱__pycache__是一种错觉。目录完全可以被认为是“污染”。如果Python解释器已经污染了内容,那么为什么不能使用__memo__?在

相关问题 更多 >