Seite 1 von 1

Instanz als refernez

Verfasst: Dienstag 9. Dezember 2008, 10:33
von lastesel
Hallo,
ich habe folgendes Problem.
Ich habe einen Datensatz a und einen String der so def. ist: Probenname='xxx'.
Nun möchte ich den Datensatz mit Werte_xxx aufrufen können. Wie kann ich dies machen?
Danke schon mal.

Verfasst: Dienstag 9. Dezember 2008, 10:36
von Leonidas
Kannst du das mal irgendwie etwas ausführen? Denn sich denke ich spreche im Namen der Allgemeinheit wenn ich "Hääää?" sage. Aus deinem Text wird nicht ganz klar was du eigentlich zu machen planst. Meine Vermutung ist, dass du vielleicht ein Dictionary suchst.

Verfasst: Dienstag 9. Dezember 2008, 10:38
von Darii
Ich schließe mich da Leonidas voll und ganz an. :)

Eventuell suchst du aber auch: ``"Werte_" + Probenname``? Die Hauptinformation die fehlt ist, was Datensatz eigentlich sein soll.

Verfasst: Dienstag 9. Dezember 2008, 10:44
von lastesel
OK.
Mein Datensatz ist vom typ dict.

Dieser heißt noch a = { }

Ich will ihn nun aber Umbenennen in Wert_xxx.

Also: Wert_xxx=a= { }

das xxx ist als String in der Form: Probenname = 'xxx' abgespeichert. (er wird aus einem Dateinahmen ausgelesen).

Problem:

ich würde das ganze gerne so schreiben:

'Wert_'+Probenname = a (wobei a das Diction. ist)

Dies wird aber so von Python nicht akzeptiert, da ja xxx eine Instanz von Probenname ist (Probenname ist ja die Referenz).
Jetzt muss ich meine Instanz ihrgendwie so umbauen das ich sie als Referenz benutzen kann, die auf mein Dict. refferenziert.
Ihrgendwie muss ich also 'Wert_'+Probenname in eine Variable umbennenen.
Denke ich zu kompliziert?

Verfasst: Dienstag 9. Dezember 2008, 11:05
von Hyperion
Dann packe doch ein dict in ein dict!

Code: Alles auswählen

was_auch_immer = {
    "Wert_xxx": {
        "a": 4
        "b": 6
# ... usw
    }
    "Wert_xxy": {
        "a": 9
        "b": -1
# ... usw
    }
}

Verfasst: Dienstag 9. Dezember 2008, 21:08
von Darii
lastesel hat geschrieben:Dies wird aber so von Python nicht akzeptiert, da ja xxx eine Instanz von Probenname ist (Probenname ist ja die Referenz).
``"xxx"`` ist keine Instanz von ``Probenname``, sondern eine Instanz von ``str``. Und ``Probenname`` ist der Name unter dem ``"xxx"`` zu erreichen ist.

Was du willst, geht mit ``eval`` aber eigentlich möchtest du, wie von Leonidas vorgeschlagen, ein dict verwenden.