Python 抢占

Python 抢占,python,class,Python,Class,我需要先发制人,我想知道做这件事的正确方法是什么。基本上我在代码中的问题是 class A: def __init__(self): self.log = logging.getLogger() self.log.debug("In init") self.closed = False def close(self): self.log.debug("Doing some magic") self.

我需要先发制人,我想知道做这件事的正确方法是什么。基本上我在代码中的问题是

class A:
    def __init__(self):
        self.log = logging.getLogger()
        self.log.debug("In init")
        self.closed = False

    def close(self):
        self.log.debug("Doing some magic")
        self.closed = True

    def __del__(self):
        if not self.closed:
            self.close()
        self.log.debug("In closing")

        # What should go here to properly do GC??
现在有没有办法调用标准GC功能

谢谢你的阅读

史蒂夫不是一个真正的破坏者。在销毁对象之前调用它以释放它所持有的任何资源。它不必担心释放内存本身


如果您继承的类可能还具有开放资源,则始终可以调用父类“\u del\u”。

如果您希望手动调用GC,请调用GC.collect。

请为此使用with语句

with声明保证,如果 enter方法返回时不带 如果出现错误,则退出将始终有效 被叫来


使用上下文管理器对象的“退出”,而不是玩弄“删除”。你读过with语句和上下文管理器吗?你有什么问题?只有当你知道你的代码不会在2.5之前的Python版本中使用时,才使用with语句。Preempt?为什么?你到底想达到什么目的?