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

发布于 2022-08-23 22:56:45 字数 328 浏览 21 评论 0

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

阳光下慵懒的猫 2022-08-30 22:56:45

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

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。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文