Python, Wörterbuch und int Fehler
-
23-08-2019 - |
Frage
Ich habe ein sehr frustrierend Python Problem. In diesem Code
fixedKeyStringInAVar = "SomeKey"
def myFunc(a, b):
global sleepTime
global fixedKeyStringInAVar
varMe=int("15")
sleepTime[fixedKeyStringInAVar] = varMe*60*1000
#more code
Jetzt das funktioniert. Aber manchmal, wenn ich diese Funktion ausführen ich
TypeError: 'int' object does not support item assignment
Es ist sehr ärgerlich, da ich mehrere Testfälle ausprobiert und konnte den Fehler nicht reproduzieren, aber es passiert sehr oft, wenn ich den vollständigen Code ausführen. Der Code liest Daten aus einer db, Zugangsstellen usw., so ist es schwer für mich durch die Daten zu gehen, da es aus mehreren Quellen liest und hängt von 3rd-Party-Eingang, ändert (Website).
Was könnte dieser Fehler sein?
Lösung
-
Sie nicht
global
Schlüsselwort in einer Funktion verwenden, wenn Sie die Bindung eines globalen Namen ändern möchten. -
Suche nach '
sleepTime =
' in Ihrem Code. Sie sind verbindlich ein int-Objekt mit dem NamensleepTime
an einem gewissen Punkt in Ihrem Programm.
Andere Tipps
Ihre sleeptime ist eine globale Variable. Es könnte ein int sein an einem gewissen Punkt in Ihrem Programm geändert werden.
Der Artikel Zuordnung ist es, die "foo [bar] = baz" -Konstruktion in Ihrer Funktion.