我有一个计时器类,我设计为触发一次,然后(最佳)删除自身。我有办法实现这种自我删除吗?
class timer:
def __init__(self, duration, function, args):
self.duration = duration
self.function = function
self.args = args
def start(self):
self.time = time.time()
self.validity = True
def check(self):
if(int(self.time)+self.duration < time.time() ):
self.function(self.args)
self.validity = False
def __del__(self):
print("timer destroyed")
您可以采用类似的方法。
可以调用object.__del__(self)
来销毁实例。
>>> class Test:
... def __del__(self):
... print "deleted"
...
>>> test = Test()
>>> del test
deleted
除非删除所有引用,否则不会删除该对象
另外,来自Python官方文档参考:
del x不直接调用x。del()-前者递减x的引用计数加一,而后者仅在x等于参考计数达到零
解决方案中需要使用del object
之类的东西,其中对象是要删除的实例。
您是否尝试使用无?像这样的东西:
timer = None