__del__没有被调用

时间:2014-09-08 06:53:39

标签: python python-2.7

实际上,我是python的新手。我想删除一个类的对象。但是,对我来说, del 没有调用,应该调用它。以下是代码:

counter = 2
class P:
    def __init__(self):
            self.x = {}
            self.fun()

    def fun( self ):
            self.x = Q( 2 )
            del self.x
class Q:
    def __init__(self, value):
            self.z = value
    def __Del__( self ):
            global counter
            if self.z == 2:
                    counter -= 1
            print counter

s = P()

我认为它应该打印计数器价值。但代码不会打印任何内容。为什么??

2 个答案:

答案 0 :(得分:2)

你拼错了__del__,Python 区分大小写;你使用了大写的D

答案 1 :(得分:1)

它应该是__del__,而不是__Del__,否则您创建另一个方法,而不是在对象上调用del时调用的方法。