Python对象由gc.get_referents()多次返回

时间:2013-04-13 11:28:18

标签: python memory-management memory-leaks garbage-collection

我正在使用gc模块(Ubuntu 12.10上的Python 2.7.3)来分析对象引用。

从以下代码开始:

a = [1,2,3]
b = [1,2,3,4,5]

print(gc.get_referents(a,b))

获得结果:

[3, 2, 1, 5, 4, 3, 2, 1]

似乎从gc.get_referents()返回的列表中多次引用了一个对象。以下列方式使用set

print(set(gc.get_referents(a,b)))

我得到类似ab所指对象列表的联合:

set([1, 2, 3, 4, 5])

我想知道这是否是获取对象列表引用的正确数字对象的正确方法。

1 个答案:

答案 0 :(得分:0)

如果你想得到所有没有重复的对象,是的,

set(gc.get_referents(a, b))

会给你那些。