我如何销毁python中的对象?

问题描述 投票:0回答:2

我有一个计时器类,我设计为触发一次,然后(最佳)删除自身。我有办法实现这种自我删除吗?

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")
python python-3.x python-3.7
2个回答
1
投票

您可以采用类似的方法。

可以调用object.__del__(self)来销毁实例。

>>> class Test:
...     def __del__(self):
...         print "deleted"
... 
>>> test = Test()
>>> del test
deleted

除非删除所有引用,否则不会删除该对象

另外,来自Python官方文档参考:

del x不直接调用x。del()-前者递减x的引用计数加一,而后者仅在x等于参考计数达到零

解决方案中需要使用del object之类的东西,其中对象是要删除的实例。


0
投票

您是否尝试使用无?像这样的东西:

timer = None
© www.soinside.com 2019 - 2024. All rights reserved.