弱于 weakref

kivy compare to weakref

如何比较 kivy weakref 是否指向给定对象?

设置:

>>> my_obj
<__main__.Marker object at 0x610054ee8> 

>>> my_list
[<weakref at 0x6100662c8; to 'Marker' at 0x610054ee8>]

我的列表具体 touch.grab_list 来自 kivy 触摸事件,并包含对所有抓取的小部件的弱引用。

我想做类似 if my_obj in my_list: 的事情并得到 True 但显然这个 returns False 因为 weakref 和 my_obj 是不同的对象。 正确的方法是什么?

抱歉,我现在觉得自己很蠢,只是偶然发现了解决方案。

A weakref returns 调用时的对象。所以我们可以使用它和 map:

>>> my_obj in map(lambda x: x(), my_list)
True