Не могу понять поведение питона __del__

У меня есть некоторый тестовый код, как следует, я ожидал __del__ Функция должна вызываться так, как будто вызывается del.

class MyClass(object):
"""docstring for MyClass"""
    count = 0
    def __init__(self):
        super(MyClass, self).__init__()
        MyClass.count += 1
        print "init instance, total {0}".format(MyClass.count)

    def __del__(self):
        MyClass.count -= 1
        print "del instance, total {0}".format(MyClass.count)

if __name__ = '__main__':
    first_object = MyClass()
    second_object = MyClass()
    # del second_object

Я получаю следующую ошибку:

init instance, total 1
init instance, total 2
del instance, total 1
Exception AttributeError: "'NoneType' object has no attribute 'count'" in <bound method MyClass.__del__ of <__main__.MyClass object at 0x100f17d10>> ignored

если я включу следующую строку, она работает нормально.

del second_object 

0 ответов

Другие вопросы по тегам