我想弄清楚最好的方法來刪除的東西,最好不用寫很多代碼。重寫__del __()是最好的選擇嗎?
在我的項目中,我模擬化合物 - 我通過Bond
實例將Element
實例綁定到其他Element
實例。在化學債券往往破產,我想有一個乾淨的方式來做到這一點。我現在的方法是一樣的東西如下
# 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
我要像做
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
或者,這樣的事情就可以了
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
是這些方式中的任何一個比其他人更喜歡這樣做,還是有其他方法可以做到這一點,我忽略了?
謝謝,這基本上就是我期待我需要做的。謝謝(也)澄清德爾如何工作,我從來沒有真正明白 – Dannnno