[Python-Dev] no tp_traverse for dict iters (original) (raw)

Robert Schuppenies robert.schuppenies at gmail.com
Mon Aug 25 10:32:48 CEST 2008


Hi.

Could you please explain to me why some iterators have a tp_traverse implementation and others do not? For example tupleiterator has one, but none of the dict iterators. Same for set iterators (and possibly others). It shows in Python when you use the get_referents function.

t = (1,2,3) gc.getreferents(iter(t)) [(1, 2, 3)] s = set([1,2,3]) gc.getreferents(iter(s)) [] d = {1:1, 2:2} gc.getreferents(iter(d)) []

And is it correct that you can rephrase the question to 'why some iterators are seen as container objects and others are not'?

thanks, robert



More information about the Python-Dev mailing list