【发布时间】:2019-03-09 00:13:59
【问题描述】:
我正在使用PyFilesystem。我正在测试的代码使用open_fs(file_url) 创建一个默认文件系统。当我测试这段代码时,我现在可以传入mem://filepath/filename 以使用内存文件系统运行测试。
但是,为了进行测试,我需要使用我的测试文件填充内存文件系统。有没有办法让我在文件系统上强制一个全局单点?我希望当open_fs 在我无法控制的代码中运行时,它会打开我之前创建并使用我的测试文件播种的相同文件系统。
【问题讨论】:
-
你可以给模块打猴子补丁,所以当内存文件系统打开时,它首先检查是否已经完成,如果是,则返回之前返回的内容,而不是创建另一个实例。见问题What is a monkey patch?。如果你做一些研究,有很多方法可以在 Python 中实现单例。
-
这是我发现的一篇文章,展示了一种实现 singletons 的方法。该代码在我的浏览器中无法正确显示,但您应该能够弄清楚。这是另一个recipe。
标签: python pyfilesystem