Gregor Horvath wrote: > Felipe Almeida Lessa schrieb: > >>>>>del B >>>>># We'll to tell him to collect the garbage here, but >> >> ... # usually it should not be necessary. > > Thanks. If I do > > del B > > then the __del__ of A gets called. > That surprises me.
Why ? > I thought that B gets del'd by python when it goes > out of scope? It does. What you have to understand here is that in your script, B being in the global (read : module) scope, it doesnt goes out of scope before the script's execution's done. By that time, it's too late to do anything with stdin/stdout/stderr. Just add this to the script: def foo(): b = B() print "in foo" foo() > Do I manually have to del all class objects, so that their class > attributes get gc'd ???? Absolutely not. The only times I use del is when I want to cleanup a namespace from temp vars no longer used (usually a module's namespace with some hairy tricks at load time). -- bruno desthuilliers python -c "print '@'.join(['.'.join([w[::-1] for w in p.split('.')]) for p in '[EMAIL PROTECTED]'.split('@')])" -- http://mail.python.org/mailman/listinfo/python-list