On Sat, 14 Sep 2013 10:14:27 +0200, Marco Buttu wrote: > Hi all. Will the following code in Python 3.4 print "Goodbye from B()" > and "Goodbye from A():
Perhaps you should try it and find out. [steve@ando ~]$ python3.4 -E Python 3.4.0a1+ (default:becbb65074e1, Aug 26 2013, 03:57:58) [GCC 4.1.2 20080704 (Red Hat 4.1.2-54)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> >>> class A: ... def __init__(self, a): ... self.a = a ... print('In A.__init__()') ... def __del__(self): ... print('Goodbye from A()') ... >>> class B: ... def __init__(self): ... self.b = A(self) # Reference cycle ... print('In B.__init__()') ... def __del__(self): ... print('Goodbye from B()') ... >>> b = B() In A.__init__() In B.__init__() >>> del b >>> >>> >>> import gc >>> gc.collect() Goodbye from B() Goodbye from A() 4 >>> Does that answer your question? -- Steven -- https://mail.python.org/mailman/listinfo/python-list