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

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的用意何在?


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

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。

【热门文章】
【热门文章】