I am trying to figure out the best way to remove something, preferably without having to write in a lot of code.
In my project I am simulating chemical compounds - I have Element
instances bonded to other Element
instances via a Bond
instance. In chemistry bonds often break, and I'd like to have a clean way to do that. My current method is something like as follows
# aBond is some Bond instance
#
# all Element instances have a 'bondList' of all bonds they are part of
# they also have a method 'removeBond(someBond)' that removes a given bond
# from that bondList
element1.removeBond(aBond)
element2.removeBond(aBond)
del aBond
I want to do something like
aBond.breakBond()
class Bond():
def breakBond(self):
self.start.removeBond(self) # refers to the first part of the Bond
self.end.removeBond(self) # refers to the second part of the Bond
del self
Alternately, something like this would be fine
del aBond
class Bond():
def __del__(self):
self.start.removeBond(self) # refers to the first part of the Bond
self.end.removeBond(self) # refers to the second part of the Bond
del self
Is any one of these ways of doing it preferable to the others, or is there some other way of doing this that I'm overlooking?