fuse-python 中的一小段代码的理解

新手上路,请多包涵
def _add_class_type(cls, type, inits, proxied):
    def setter(self, xcls): 
        setattr(self, type + '_class', xcls) 
        for m in inits:  
            self.mdic[m] = xcls 
        for m in proxied: 
            if hasattr(xcls, m): 
                self.mdic[m] = self.proxyclass(m)

这个嵌套函数setter的用意何在?

阅读 5.3k
1 个回答

你漏了一行代码,这个方法是

def _add_class_type(cls, type, inits, proxied):
    def setter(self, xcls):
        setattr(self, type + '_class', xcls)
        for m in inits:
            self.mdic[m] = xcls
        for m in proxied:
            if hasattr(xcls, m):
                self.mdic[m] = self.proxyclass(m)
    setattr(cls, 'set_' + type + '_class', setter)

这个方法简单来说,就是把基础类和其他类的方法映射为本对象的方法,类似一个FACADE。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题