[Tutor] Object Destruction

Danny Yoo dyoo@hkn.eecs.berkeley.edu
Wed, 24 Jan 2001 23:01:19 -0800 (PST)


> Try some more experiments with __del__.  I'm somewhat bothered by what
> happened at the beginning of the interpreter session above, and might take
> a look again later to figure out why it didn't garbage collect initially.

Ah!  Now I know why!  There's still a reference!

>From the Python tutorial:

    http://python.org/doc/current/tut/node5.html

"In interactive mode, the last printed expression is assigned to the
variable _."

Tricky little critter!  In the situation here:

###
    >>> TestDel("Anna")
    <__main__.TestDel instance at 0x81ca2fc>
###

the reason that it didn't garbage collect immediately was because the
interactive interpreter itself has a reference to the instance with the
"_" variable.  Since there's still a reference, it doesn't die until "_"
is reassigned to the next evaluated expression or statement.

Ok, that nagging feeling is gone now.  *grin*