Seite 1 von 1

Automatisch erstellte Objektbezeichnungen

Verfasst: Mittwoch 10. November 2004, 10:21
von bogiflip
Hi. Ich bin recht neu in Python und stehe jetzt vor diesem Problem:

Ich benötige automatisch generierte Objektnamen beim erstellen eines Objekts. Ich möchte das dies in einer Methode/Schleife automatisch passiert und ich die Objekte nicht "manuell" deklarieren muss.
Als Beispiel:

Ich habe eine Class Node

Das erste erzeugte Objekt soll N1, das zweite N2 ... benannt werden.
Also benötige ich etwas wie:
Nx = Node()
x = x+1

Wie kann ich dies in Python realisieren?
Vielen Dank für jede Hilfe
bogiflip

Verfasst: Mittwoch 10. November 2004, 10:24
von murphy
mit einem array vielleicht?
kenne leider die syntax für "anhängen" nicht...aber das ist auf jeden fall die lösung für dein problem.
dynamische bezeichner brauchst du nicht.

Verfasst: Mittwoch 10. November 2004, 10:56
von bogiflip
Die Syntax für anhägnen ist nameOfList.append(object)

Ist aber leider nicht das was ich suche, da ich gerade auf Lists/Arrays verzichten möchte. Ich muss die Objekte nämlich über ihren Namen aufrufen können und nicht über ihre Position in der Liste.

Weitere Ideen? Das muss doch möglich sein...

Verfasst: Mittwoch 10. November 2004, 11:33
von Michael Euteneuer
Hi!
Warum ist es denn wichtig, dass Du die Objekte über Namen ansprichst? Ich sehe keinen Unterschied, ob Du das Element Nx als Objekt Nx oder als Objekt ListofNodes[x] ansprichst... Deswegen würde ich auch für eine Liste (oder ein dictionary) plädieren.

Gruß,
Michael

Verfasst: Mittwoch 10. November 2004, 11:40
von murphy
wohl nur über eval() oder ähnliches. wer sollte sowas brauchen?

Verfasst: Mittwoch 10. November 2004, 11:50
von Gast
Vielen Dank schon jetzt!

Die Sache ist, dass ich versuche einen Suffixbaum zu konstruieren, der auf einer eigenen Liste basiert. Wenn die Elemente dieser konstruierten Liste wiederum in einer anderen Liste stecken finde ich das etwas "unglücklich", da es in dem theoretischen Modell auch nicht so vorgesehen ist.
Daher mein Gedanke keine (Python-)Listen zu verwenden.
Im Notfall werde ich es aber wohl so machen müssen.

Könnte mir das Argument "yield" irgendwie helfen?

Verfasst: Mittwoch 10. November 2004, 13:37
von Dookie
Hi,

du könntest auch ein Dictionary verwenden und ja yield könnte dir helfen:
http://python.sandtner.org/viewtopic.php?t=1297


Gruß

Dookie