[Python-Dev] PEP 442: Safe object finalization (original) (raw)
Richard Oudkerk shibturn at gmail.com
Sat May 18 16:52:56 CEST 2013
- Previous message: [Python-Dev] PEP 442: Safe object finalization
- Next message: [Python-Dev] PEP 442: Safe object finalization
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
On 18/05/2013 3:18pm, Antoine Pitrou wrote:
It works fine:
$ ./python sbt.py <_main_.Node object at 0x7f3acbf8f400> <_main_.Node object at 0x7f3acbf8f878> <_main_.Node object at 0x7f3acbf8f878> <_main_.Node object at 0x7f3acbf8f400> The reason is that, when you execute "del self.next", this removes the last reference to self.next and destroys it immediately.
So even more contrived:
class Node:
def __init__(self, x):
self.x = x
self.next = None
def __del__(self):
print(self.x, self.next.x)
del self.x
a = Node(1)
b = Node(2)
a.next = b
b.next = a
del a, b
gc.collect()
-- Richard
- Previous message: [Python-Dev] PEP 442: Safe object finalization
- Next message: [Python-Dev] PEP 442: Safe object finalization
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]