Heim > Artikel > Backend-Entwicklung > Eine kurze Diskussion über das Schlüsselwort del und die Instanzmethode __del__(self)
Es gibt viele spezielle Methoden in Python, die __del__(self) ähneln. Einige davon, wie __gt__(), __le__() usw., können ihre ungefähren Funktionen anhand ihres Namens erraten, andere jedoch nicht nach Belieben . (Natürlich ist es möglich, dass ich der Einzige bin, der das tut.) Zum Beispiel werden hier __del__() und del angezeigt. Früher dachte ich, dass __del__() aufgerufen wird, wenn ein Objekt gelöscht wird. Nachdem ich jedoch immer wieder schriftliche Tests durchgegangen war, begann ich nach dem Scheitern, diese subtileren Punkte zu untersuchen ^_^!
Genug geplaudert und zur Sache kommen!
Wir wissen, dass del ein Objekt löscht. Genauer gesagt sollte es die Referenzanzahl des Objekts um eins verringern. Beachten Sie jedoch, dass __del__() nicht bei jedem Aufruf aufgerufen wird, da __del__() aufgerufen wird, wenn der Referenzzähler des Objekts auf 0 sinkt, wie das Beispiel zeigt:
>>> class C: def __del__(self): print("I'm vanishing...") >>> c = C() >>> b = c # 注意,此时对C()的引用计数为2 >>> del b >>> # 瞧,什么输出都没有,说明__del__()并没调用 >>> del c I'm vanishing... # 引用计数降为0后才被调用 >>>