将属性注入python模块无法正常工作

库特施凯姆

我正在尝试使用python进行魔术,但是它没有按预期工作:

def inject_imports(self,module):
    m = sys.modules[module]
    for key in self._classdict.keys():
        setattr(m, key, property(lambda : getattr(self, key)))
    for key in self._methoddict.keys():
        setattr(m, key, property(lambda : getattr(self,key)))

我之所以用lambda以这种令人费解的方式注入它的原因是,我正在模拟一个懒惰的导入。问题是在运行时,我收到消息:

AttributeError: 'property' object has no attribute 'attribute'

似乎实际上,属性对象实际上并没有提供对属性的直接访问,而是具有fget / fset /等。我怎样才能解决这个问题?我基本上只需要一个代理,该代理可以透明地将对自身的访问重定向到lambda或类似结果。

布鲁诺·德斯胡里尔斯

module这是内置module类型的实例property类型依赖于协议的描述符和描述符的协议仅在类属性调用(可以设置一个property(或任何其他描述符)作为实例属性,但随后的__get__/ __set__/__del__方法将不被调用)。

如果要使用描述符进行代理,则必须将模块包装在代理类中,然后在类上设置属性。但是我不确定它是否可以按预期工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

卸载的包装模块:Python无法正常工作

来自分类Dev

Python中的日历模块无法正常工作

来自分类Dev

模块无法正常工作

来自分类Dev

注入jQuery无法正常工作

来自分类Dev

属性无法正常工作

来自分类Dev

将python嵌入C ++无法正常工作

来自分类Dev

模块路由无法正常工作

来自分类Dev

无法使模块功能正常工作

来自分类Dev

Python“请求”模块中的POST请求无法正常工作

来自分类Dev

从Python模块导入的装饰器无法正常工作

来自分类Dev

我无法获得用于传输的python模块正常工作

来自分类Dev

Python“请求”模块中的POST请求无法正常工作

来自分类Dev

Python 键盘模块在循环内无法正常工作

来自分类Dev

如果在Robot Framework中用作自定义关键字,Python模块将无法正常工作

来自分类Dev

DOM中注入的contenteditable无法正常工作

来自分类Dev

DOM中注入的contenteditable无法正常工作

来自分类Dev

依赖注入:Angular 2无法正常工作

来自分类Dev

onclick属性无法正常工作

来自分类Dev

“正确”属性无法正常工作

来自分类Dev

导航属性无法正常工作

来自分类Dev

Micronaut:将@Property的值列表注入测试类无法正常工作

来自分类Dev

如果在xml中手动创建bean,Spring注入将无法正常工作

来自分类Dev

opencv中的SIFT()无法正常工作:“模块”对象没有属性“ SURF”

来自分类Dev

钛模块图像工厂无法正常工作

来自分类Dev

模块模式$ .bind无法正常工作

来自分类Dev

AngularJS模块分离无法正常工作

来自分类Dev

App Engine PHP模块无法正常工作

来自分类Dev

Apache Rewrite模块无法正常工作

来自分类Dev

将Python嵌入C示例无法正常工作

Related 相关文章

热门标签

归档