dedlfix: Variable aus Javascript in Pythonscript verwenden

Beitrag lesen

Tach!

Untersuch mal, ob du nicht gleich mit einer List oder einem Dictionary besser kommst als mit einzeln benannten Variablen.
Mit einem Dictionary klappts nicht:
buch = {"rechner1" : "[1,2,5]", "rechner2" : "[3,5,8]"}

Ich dachte eher an rechner = {1: ..., 2: ...}, weil ich annahm, das das eine Aufzählung sei. Wenn rechner1 und rechner2 jedoch Namen sind, die Zahlen also dazugehören, dann lass das so. Aber warum hast du da als Werte Strings ("[1,2,5]") notiert? Ich dachte, das sollen Listen sein?

test = buch["rechner1"]

Damit hast du jetzt einen String in Test stehen. Der besteht aus den Zeichen [ und 1 und , und 2 und so weiter.

in der for schleife: [test[x]]
Fehlermeldung: list indices must be integers

Ich kann mir jetzt nur zusammenreimen, dass du diese Zeichen als List-Indices verwenden willst, was ja aber keine Integers sind. Also musst du oben tatsächlich Listen statt Strings notieren.

Wie hast du gedacht das das mit globals locals funktioniert? Habe leider spontan keine Idee wo ich da ansetzen sollte...

Wenn du eine Variable foo (zum Beispiel durch eine Zuweisung) erzeugst (foo = 42), dann kannst du über ihren Namen foo ganz normal im Code zugreifen. Außerdem existiert nun ein Eintrag in einem lokalen oder globalen Dictionary, welches dir von der Funktion locals() oder globals() zurückgegeben wird. Über locals()['foo'] kannst du nun ebenfalls lesend auf den Wert in foo zugreifen, wobei du auch

bar = 'foo'
  print(locals()[bar])

machen könntest, dann wird der Name foo nicht direkt als String übergeben, sondern befindet sich in bar. Es kann jetzt noch sein, dass du globals() statt locals() nehmen musst, das hängt von deinen Gegebenheiten ab. Vergleiche: http://www.diveintopython.net/html_processing/locals_and_globals.html

dedlfix.