Heh heh. If you had started with Python and then moved to C++, you'd
probably be arguing the reverse <wink>.
> ...
> Also, is there any way to duplicate the concept of a destructor in
> Python, ala C++ ?
The special method __del__ is invoked (if it's defined) when an object is
about to be garbage-collected. Note that the latter happens when the
object's reference count drops to zero, and has nothing to do with C++-
like scope rules. You'll probably like Python _much_ better in this
respect!
Here's Example.py:
class Example:
def __init__(self, x):
self.val = x
def __repr__(self):
return 'Example(' + `self.val` + ')'
def __del__(self):
print 'deleting instance', `self`
and a session using it:
>>> import Example
>>> def create(n): return Example.Example(n)
...
>>> x = create(1)
>>> x
Example(1)
>>> y = create(2)
>>> y
Example(2)
>>> z = y # bumps the _object_ ref count to 2
>>> del x # destroy only binding to x's object
deleting instance Example(1)
>>> del y # destroy one of the two bindings to y's object
>>> del z # and destroy the other binding
deleting instance Example(2)
>>>
constructively y'rs - tim
Tim Peters tim@ksr.com
not speaking for Kendall Square Research Corp