Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Also ich habe ein Objekt und ei Objet ist ja nichts anderes als eine ansammlung von Variablen und Funktionen.
Wenn ich nur 2 Objekte vom selben Type habe, dann brauch ich auch 2mal den Speicherplatz, oder nicht?
Ich brauche jetzt aber nurnoch das zuletzt erzeugte Objekt, wie kann ich das eine Objekt löschen und den Speicher freigen ?
Ach ja, kann ich eigentlich auch eine Liste von Objekten erzeugen also
Da dieses Thema an anderer Stelle als Argumentation für ``del`` == manuelle Speicherverwaltung verwendet wurde: Nein, ``del`` auf Namen angewendet löscht keine Objekte. Man kann in Python nicht explizit und zuverlässig Objekte löschen. Darum kümmert sich die automatische Speicherverwaltung, wobei die auch nur recht wenige Garantien gibt. Ein nicht mehr vom Programm aus erreichbares Objekt wird vielleicht, irgendwann einmal gelöscht. Weder Zeitpunkt, noch ob es in jedem Fall überhaupt passiert, ist von der Sprachspezifikation garantiert.
``del`` auf Namen angewendet, verwendet man um den *Namen* zu löschen. Das ist manchmal, aber wirklich nur sehr selten sinnvoll. Zum Beispiel wenn man auf Modulebene Code stehen hat der Konstanten erstellt und dabei zur besseren Verständlichkeit Namen für Zwischenergebnisse entstehen, die danach nicht mehr gebraucht werden und die API von dem Modul nicht vollmüllen sollen.
Der automatischen Speicherverwaltung greift man am besten unter die Arme, in dem man das Programm nicht auf Modulebene oder in einer riesigen Funktion stehen hat, sondern es sinnvoll auf kleinere Funktionen aufteilt, deren lokale Namen nach Abarbeitung automatisch verschwinden, und damit auch Referenzen auf dann ungenutzte Zwischenergebnisse.
„All religions are the same: religion is basically guilt, with different holidays.” — Cathy Ladman