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
Klasseninstanzen löschen
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.newb hat geschrieben:Kann mir einer sagen, wie ich die Instanzen einer Klasse lösche und somit den Destruktor auslöse?
Jan
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.newb hat geschrieben:Kann mir einer sagen, wie ich die Instanzen einer Klasse lösche und somit den Destruktor auslöse?
Jens Kubieziel http://www.kubieziel.de
http://www.kubieziel.de/pythonwiki/
http://www.kubieziel.de/pythonwiki/
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
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
-
- Python-Forum Veteran
- Beiträge: 2010
- Registriert: Freitag 11. Oktober 2002, 18:00
- Wohnort: Salzburg
- Kontaktdaten:
Hi Ansgar,
hmm gib der Klasse doch ein attribut "lebt" und setze das im falle des Ablebens auf 0, dann kannst abfragen
Gruß
Dookie
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 ...
Dookie
Toll jetzt hab ihr den newb wieder so überrumpelt, der wird kein Programmierer mehr
[i]...und ich glaube ich habe eine Zwei gesehen[/i]