Python删除类对象

时间:2016-04-17 20:37:59

标签: python oop

我正在寻找一种删除类实例的方法,我认为安全地执行此操作的方法与Clint Miller here提出的方法类似。对于我试图做的事情,这似乎不是一个可行的选择。

我的问题是,下面的方法是否可以安全地删除类实例,如果没有,那么如何(如果有的话)可以修改它以实现它?

class myClass:
    _reg = []

    def __init__(self, *args):
        self.args = args
        self._reg.append(self)

    ...

    def close(self):
        self._reg.pop(self._reg.index(self))

myClass的实例只能这样创建:myClass(arg1, arg2...)而不是:a = myClass(arg1, arg2...)或通过像myFunc这样的函数。当不再需要实例时,会调用其close函数。

def myFunc(*args):
    ...
    myClass(newArg1, newArg2...)

P.S您可以假设不会对myClass._reg中的项目进行新的引用,并提前感谢。

编辑:注册表作为一种在myClass存在时跟踪其实例的方式而存在。它不仅仅是一种过于复杂的尝试立即删除它们的方式(我可能不会创建它们就是这种情况)。

每个实例需要存在的时间量和执行为简洁(和相关性)而省略的功能差异很大。

至于为什么我需要确保删除未使用的实例,需要在未指定的时间创建新实例,并且每个实例的某些预期函数将开始以难以处理的方式相互冲突如果他们没有被删除或以其他方式被禁用。除此之外,实例列表几乎肯定会变得非常长,因为这可能会导致其他问题。

0 个答案:

没有答案