从python中的弱引用代理获取常规引用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从python中的弱引用代理获取常规引用相关的知识,希望对你有一定的参考价值。
是否有一种方法可以为我获得了弱引用代理的对象获得正确的引用?
我浏览了weakref模块的文档,却找不到答案,或者手动戳了一个weakproxy对象。
答案
您可以通过调用弱引用对象来获取引用对象:
obj = ref()
弱引用对象没有属性或方法,但允许通过调用获取参考对象(如果仍然存在)。如果参照对象不存在,调用引用对象将返回
weakref
。
虽然这不适用于代理对象,但我看不到从弱引用代理获取弱引用对象或对实际对象的引用的方法。
另一答案
尽管没有直接暴露在代理对象本身上的东西,但是可以通过滥用绑定方法的None
属性来获得引用:
__self__
这里使用obj_ref = proxy.__repr__.__self__
只是一个随机选择,尽管如果您想使用通用方法,最好使用所有对象都应该具有的方法。
以上是关于从python中的弱引用代理获取常规引用的主要内容,如果未能解决你的问题,请参考以下文章