dl l <ldlch...@gmail.com> writes:
> I understood call PyGC_collect to release object cycles. But in my python
> test code, seems there is NO reference cycle on the Simple object in the
> python test code. Why needs to call PyGC_Collect() here?
> =========================================================
> class Simple:
>      def __init__( self ):
>          print('Simple__init__')
>      def __del__( self ):
>          print('Simple__del__')
> simple = None
> def run():
>     global simple
>     simple = Simple()
> if __name__ == '__main__':
>       run()

I do not see a cycle in this example. Thus, maybe, Python itself
has introduced one (maybe via "__builtins__").

To further analyse the case, I would start by checking the "gc" module's
documentation to find out, whether it provides a way to get information
about the cycles it has found (and would have deleted if it had
not generated references for this analysis).


Reply via email to