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.
newb

Klasseninstanzen löschen

Beitragvon newb » Donnerstag 24. Juli 2003, 15:46

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

Re: Klasseninstanzen löschen

Beitragvon Voges » Donnerstag 24. Juli 2003, 16:33

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:

Re: Klasseninstanzen löschen

Beitragvon Qbi » Donnerstag 24. Juli 2003, 17:50

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.
newb

Das ist ja doof

Beitragvon newb » Donnerstag 24. Juli 2003, 21:56

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
Benutzeravatar
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Beitragvon Dookie » Donnerstag 24. Juli 2003, 22:51

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
Benutzeravatar
akIra
User
Beiträge: 49
Registriert: Dienstag 3. Dezember 2002, 12:05
Wohnort: Berlin
Kontaktdaten:

Toll

Beitragvon akIra » Freitag 25. Juli 2003, 09:53

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

Beitragvon newb » Dienstag 29. Juli 2003, 18:43

Glaub ich auch net @ akira

Aber Dookies vorschlag ist schon gut

Gruß
Ansgar

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder