簡體   English   中英

如何銷毀python中的對象?

[英]How do I destroy an object in python?

我有一個計時器類,我設計它觸發一次,然后(最好)刪除它自己。 有沒有辦法讓我實現自我刪除?

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東西,其中對象是您要刪除的實例。

您是否嘗試使用 None ? 像這樣:

timer = None

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM