Seite 1 von 1

Von String in Variablenname ändern

Verfasst: Mittwoch 27. März 2013, 07:32
von thomasgull
Guten Morgen miteinander

Ich habe eine Frage:

Ich kriege in der Variable InFeld1 den String "kanal1", "kanal2" oder so

Weiteroben im Programm habe ich eine Zuodnungsliste mit: kanal1= TPCANHandle(0x51), kanal2= TPCANHandle(0x52, ....)

nun weiter unten muss ich einer Varaiblen den kanal aus der Liste zuordnen.

nun könnte ich natürlich:
if InFeld1=="kanal1":
variableX=kanal1 #variable aus Liste
nun könnte ich natürlich:
elif InFeld1=="kanal2":
variableX=kanal2 #variable aus Liste


.....

es gibt sicher eine einfachere Variante dies zu tätigen indem ich den String in einen Variablenname umtaufe so zusagen.

Danke und schönen Tag

Re: Von String in Variablenname ändern

Verfasst: Mittwoch 27. März 2013, 08:39
von bwbg
Deine "Zuordnungsliste" scheint keine zu sein; vielmehr ein Haufen durchnummerierter Namen.

Du willst keine Namen durchnummerieren!

Verwende statt dessen Listen (list, []) und Wörterbücher (dict, {}).

Es wird Dir leichter fallen, Dein Problem zu lösen.

Grüße ... bwbg

Re: Von String in Variablenname ändern

Verfasst: Mittwoch 27. März 2013, 08:46
von thomasgull
Danke für den Tipp ich werde es mir mal anschauen, nur die "Zuordnungsliste ist im Programmteil schon gegeben und desshald wolte ich darauf zugreifen

Danke

Re: Von String in Variablenname ändern

Verfasst: Mittwoch 27. März 2013, 09:35
von bwbg
Wenn ich das richtig interpretiere (mehr Infos sind immer besser), kannst Du die Zuordnungsliste (mit einer echten Liste) auch recht einfach mit einer for-Schleife oder einer List-Comprehension (LC) selbst erzeugen.

Aber schaue Dir zunächst die von mir genannten list und dicts an. for und LC ergeben sich dann fast von alleine daraus.

Grüße ... bwbg

Re: Von String in Variablenname ändern

Verfasst: Mittwoch 27. März 2013, 09:39
von gottlieb
Moin,
wenn ich dich richtig verstanden habe könnte dir der vars()[]-Befehl was nutzen.
Hab sowas ähnliches gemacht. Schau dir den Befehl mal in einer Doku an.
Gruß

Re: Von String in Variablenname ändern

Verfasst: Mittwoch 27. März 2013, 09:45
von bwbg
Auf die locals zuzugreifen, halte ich für eine ganz schlechte Idee und wäre hier sicherlich kontraproduktiv. Wenn diese durchnummerierten Namen aus einer Bibliothek stammen gehört der Maintainer geschlagen ;)

Grüße ... bwbg