首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何销毁python中的对象?

如何销毁python中的对象?
EN

Stack Overflow用户
提问于 2020-03-25 10:43:16
回答 2查看 1.1K关注 0票数 0

我有一个timer类,我设计它触发一次,然后(最好)删除它自己。有没有办法让我实现自我删除?

代码语言:javascript
复制
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")
EN

回答 2

Stack Overflow用户

发布于 2020-03-25 10:48:45

您可以遵循类似的方法。

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

代码语言:javascript
复制
>>> class Test:
...     def __del__(self):
...         print "deleted"
... 
>>> test = Test()
>>> del test
deleted

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

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

del x不直接调用x.del() -前者将x的引用计数减1,而后者仅在x的引用计数达到零时调用

在您的解决方案中,您需要使用类似于del object的内容,其中对象是您想要删除的实例。

票数 2
EN

Stack Overflow用户

发布于 2020-03-25 12:19:46

你有没有试过使用None?如下所示:

代码语言:javascript
复制
timer = None
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60842294

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档