如果我有一些對象的ID例如,我怎樣才能找出所有指向它的對象?找到指向某個對象的所有對象? (python)
回答
import gc
class Node(object):
def __init__(self, data):
self.data = data
self.next = None
if __name__ == "__main__":
a = Node(5)
a.next = Node(4)
a.next.next = Node(3)
# returns a list of dictionary of the object(s) referring to a.next.next
diction = gc.get_referrers(a.next.next)[0]
diction['next'] = None
print a.next.next
垃圾收集器有一些巧妙的功能
get_referrers(...)
get_referrers(*objs) -> list
Return the list of objects that directly refer to any of objs.
get_referents(...)
get_referents(*objs) -> list
Return the list of objects that are directly referred to by objs.
我不認爲這是一種將它稱爲雙鏈表的方式。這基本上只是依靠gc自動跟蹤引用,而不是將引用存儲在對象上。從技術上來說,如果您將反向引用存儲在您自己的單獨字典中,或者僅僅將它們存儲在節點對象本身中,那麼技術上不會有區別...因此...雙鏈表。它只是在參照管理的地方玩遊戲。你最終會寫出一個「後退」的方法,並可能將其存儲在Node上。 – jdi 2012-03-23 00:20:38
我同意,但它是迄今爲止我發現的最接近的東西lol – Jae 2012-03-23 01:04:04
是的,我的觀點是,我認爲它不會很好地將此作爲能夠實現鏈接列表的能力的證明,該列表也可以倒退: - ) – jdi 2012-03-23 01:40:11
- 1. 查找具有某個屬性的關聯對象的所有對象
- 2. 設置指向對象的指針,讓對象指向對方
- 3. Python的 - 刪除對象指向另一個對象
- 4. 列出某個類的所有對象
- 5. 通過指向方向查找對象
- 6. ,對象和指向對象的指針有什麼區別?
- 7. Rails:找到父對象的所有關聯對象
- 8. 如何指定另一個對象來指向單個對象?
- 9. 找到並返回一個指向一個向量中的對象的指針
- 10. 如何查找lua中某個對象的所有屬性?
- 11. objc對象指向
- 12. 向某個方向移動對象
- 13. 如何問一個對象內的某個對象內的某個對象
- 14. 創建一個指向抽象對象的指針向量
- 15. 查找所有沒有關聯has_many對象的對象
- 16. 向量含有矢量對象指針的最終指向同一對象
- 17. 查找對python中所有對象的引用
- 18. 指向新的對象
- 19. 包含另一個對象指針向量的對象
- 20. C++指向一個類的對象,而不是對象
- 21. 無法在對象指針的矢量中找到對象
- 22. 刪除存儲指向某些對象的指針的數組
- 23. 找到對象
- 24. 找到對象
- 25. SPARQL:查找所有子對象與條件匹配的對象
- 26. RoR:查找對象數組的所有關聯對象
- 27. 爲對象#2的所有現有屬性合併對象#1到對象#
- 28. 對一個對象的所有引用
- 29. UIPopOverController指向一個UITableViewCell內的對象?
- 30. Python對象持有對象的字典()
你不能,至少,Python環境之內。 – Amber 2012-03-22 00:42:24
你希望用這些信息來完成什麼? – 2012-03-22 00:43:25
http://stackoverflow.com/questions/1396668/python-get-object-by-id – John 2012-03-22 00:43:42