On Jun 29, 6:44 am, Douglas Alan <[EMAIL PROTECTED]> wrote:
>
> I've written plenty of Python code that relied on destructors to
> deallocate resources, and the code always worked.

You have been lucky:

$ cat deallocating.py
import logging

class C(object):
    def __init__(self):
        logging.warn('Allocating resource ...')

    def __del__(self):
        logging.warn('De-allocating resource ...')
        print 'THIS IS NEVER REACHED!'

if __name__ == '__main__':
    c = C()

$ python deallocating.py
WARNING:root:Allocating resource ...
Exception exceptions.AttributeError: "'NoneType' object has no
attribute 'warn'" in <bound method C.__del__ of <__main__.C object at
0xb7b9436c>> ignored

Just because your experience has been positive, you should not
dismiss the opinion who have clearly more experience than you on
the subtilities of Python.

                 Michele

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to