我有一个基于 fuse 文档中的 Xmp 示例的 python fuse 项目。我已经包含了一小段代码来展示它是如何工作的。出于某种原因,get_file 确实被调用并创建了类,但不是从 get_file (file_class) 熔丝调用 .read() 类,而是继续调用 Dstorage.read() ,这违背了将读取函数移出的目的班级。
class Dstorage(Fuse, Distributor):
def get_file(self, server, path, flags, *mode):
pass
# This does some work and passes back an instance of
# a class very similar to XmpFile
def main(self, *a, **kw):
self.file_class = self.get_file
return Fuse.main(self, *a, **kw)
我的代码托管在启动板上,您可以使用此命令下载它。
bzr co https://code.launchpad.net/~asa-ayers/+junk/dstorage
bzr 分支 lp:~asa-ayers/dstorage/trunk
解决方案:
我使用了一个代理类,它继承了我需要的类,在构造函数中我得到了我需要的类的实例并覆盖了所有代理的方法以简单地调用实例方法。