Let's say I have two classes:
class Container(): def __init__(self, name): self.name = name class Data(): def __init__(self): self._containers = [] def add_container(self,name): self._containers.append(name) setattr(self, name, Container(name)) Now let's say
myData = Data() myData.add_container('contA') Now, if I do del myData.contA it of course doesn't remove name from myData._containers.
So how would I write a destructor in Container so it deletes the attribute but also removes name from the _containers list?