Klasseninstanzen löschen

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.
Antworten
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
Voges
User
Beiträge: 564
Registriert: Dienstag 6. August 2002, 14:52
Wohnort: Region Hannover

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
Qbi
User
Beiträge: 57
Registriert: Mittwoch 25. Juni 2003, 14:04
Kontaktdaten:

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.
Jens Kubieziel http://www.kubieziel.de
http://www.kubieziel.de/pythonwiki/
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
Dookie
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

Code: Alles auswählen

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

Gruß

Dookie
akIra
User
Beiträge: 49
Registriert: Dienstag 3. Dezember 2002, 12:05
Wohnort: Berlin
Kontaktdaten:

Toll jetzt hab ihr den newb wieder so überrumpelt, der wird kein Programmierer mehr :wink:
[i]...und ich glaube ich habe eine Zwei gesehen[/i]
newb

Glaub ich auch net @ akira

Aber Dookies vorschlag ist schon gut

Gruß
Ansgar
Antworten