Seite 1 von 1

Klasseninstanzen löschen

Verfasst: Donnerstag 24. Juli 2003, 15:46
von newb
Hallo,

Kann mir einer sagen, wie ich die Instanzen einer Klasse lösche und somit den Destruktor auslöse?

Gruß
Ansgar

p.s: Das stand in keinem meiner Bücher

Re: Klasseninstanzen löschen

Verfasst: Donnerstag 24. Juli 2003, 16:33
von Voges
newb hat geschrieben:Kann mir einer sagen, wie ich die Instanzen einer Klasse lösche und somit den Destruktor auslöse?
Mit del(). Damit löschst Du zwar nicht die Instanz direkt, aber zumindest eine Referenz auf eine Instanz (unbind). Wenn's die einzige Referenz auf die Instanz war, wird Instanz dann auch (bei Gelegenheit) vom Garbage Collector gelöscht.
Jan

Re: Klasseninstanzen löschen

Verfasst: Donnerstag 24. Juli 2003, 17:50
von Qbi
newb hat geschrieben:Kann mir einer sagen, wie ich die Instanzen einer Klasse lösche und somit den Destruktor auslöse?
In Python kannst du keine Instanz löschen. Hier hast du einen Garbage Collector. Wenn keine Referenzen vorhanden sind, führt der die __del__ Methode aus und gibt den belegten Speicher frei.

Das ist ja doof

Verfasst: Donnerstag 24. Juli 2003, 21:56
von newb
Das find ich aber schlecht, denn ich wollte über Klassen ein Spiel erstellen.
In dem Spiel wollte ich die Einheiten als Instanzen der jeweiligen Klassen benutzen. Aber da man Klasseninstanzen nicht so löschen kann erkennt der Computer erst dann das die Einheit "tot" ist, wenn jede Einheit dieses Typs "tot" ist.
:?: :?: :?: :?: :?: :?: :?: :?: :?:

Gruß
Ansgar

Verfasst: Donnerstag 24. Juli 2003, 22:51
von Dookie
Hi Ansgar,

hmm gib der Klasse doch ein attribut "lebt" und setze das im falle des Ablebens auf 0, dann kannst abfragen

Code: Alles auswählen

if Einheit.lebt:
    ... mach was der lebt noch ...
else:
    ... hohl den Totengräber, der is hinüber ...

Gruß

Dookie

Toll

Verfasst: Freitag 25. Juli 2003, 09:53
von akIra
Toll jetzt hab ihr den newb wieder so überrumpelt, der wird kein Programmierer mehr :wink:

Verfasst: Dienstag 29. Juli 2003, 18:43
von newb
Glaub ich auch net @ akira

Aber Dookies vorschlag ist schon gut

Gruß
Ansgar