实际上,我是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()
我认为它应该打印计数器价值。但代码不会打印任何内容。为什么??
答案 0 :(得分:2)
你拼错了__del__
,Python 区分大小写;你使用了大写的D
。
答案 1 :(得分:1)
它应该是__del__
,而不是__Del__
,否则您创建另一个方法,而不是在对象上调用del
时调用的方法。