Hi all.

I was wondering if someone could explain gc.get_objects() in a bit more detail to me.

Does it return a list of 'all objects known to Python'? Only some of them? Which does it return? Which it does not?

For example (done using CPython 3.4 interactive interpreter) here it does not contain an object I know exists:

>>> a = object()
>>> a in gc.get_objects()
False

  but here it does:

>>> class Foo: pass
...
>>> a = Foo()
>>> a in gc.get_objects()
True

It also does not seem to contain string objects. At first I thought that perhaps interned strings were not placed under GC control, so I tested this:

>>> a = "asdkjfhk23498237$&(*$&*($ksjdhfkjsd"
>>> b = "asdkjfhk23498237$&(*$&*($ksjdhfkjsd"
>>> a is b
False
>>> a in gc.get_objects()
False
>>> b in gc.get_objects()
False

Which shows that non-interned scripts such as these are not getting listed in gc.get_objects() either. :-s

  Many thanks.

  Best regards,
    Jurko Gospodnetić

--
https://mail.python.org/mailman/listinfo/python-list

Reply via email to