如何删除python中iterable类的所有实例?

如何删除python中iterable类的所有实例?,python,class,iterable,instances,code-cleanup,Python,Class,Iterable,Instances,Code Cleanup,我创建了这种形式的简单iterable类,这是我在stackoverflow上找到的一个具体示例。在创建类的实例并在其上迭代多次并调用函数之后。我的目标是清理整个类并删除所有实例,此外,我希望将_注册表重置为空列表。感谢您的友好和耐心的帮助,我是Python OOP的绝对新手 class Person(object): _registry = [] def __init__(self, name): self._registry.append(self)

我创建了这种形式的简单iterable类,这是我在stackoverflow上找到的一个具体示例。在创建类的实例并在其上迭代多次并调用函数之后。我的目标是清理整个类并删除所有实例,此外,我希望将_注册表重置为空列表。感谢您的友好和耐心的帮助,我是Python OOP的绝对新手

class Person(object):
    _registry = []

    def __init__(self, name):
        self._registry.append(self)
        self.name = name

for p in Person._registry:
    print p

好的,我发现了一个可行的方法,但我不确定这是否是一个好的编码实践。由于我的类位于外部脚本中,因此可以使用reload(pythonModule_with class)然后重新导入person类。您的看法是什么?是认为
Person
在其
\u注册表中存储了大量联系人或连接,还是应该将该类称为
registry
并保存大量未连接的
Person
实例?只是试图理解这里的结构/哲学意图。我不会利用重新导入。你说的打扫教室是什么意思?注册表可以由
Person清除。\u registry=[]
如果我没有弄错的话,Python会缓存导入,并且不会在重新导入时“重置”任何内容。我可能是错的,但我记得前几天读到过这样的东西。正如@TamasHegedus所建议的,如果您只是想清除一个列表,请将其重新定义为一个空列表,并让自动垃圾收集器在后台清理内存。它也可以通过
gc
直接调用,但这几乎没有必要。重新加载包含类的python模块脚本至少在我的上下文中有效,但是@Tamas Hegedus建议的解决方案当然更好。非常感谢。除了自动垃圾收集器负责清理内存的解释帮助我理解,