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?

War es hilfreich?

Lösung

  1. Sie nicht global Schlüsselwort in einer Funktion verwenden, wenn Sie die Bindung eines globalen Namen ändern möchten.

  2. Suche nach 'sleepTime =' in Ihrem Code. Sie sind verbindlich ein int-Objekt mit dem Namen sleepTime 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.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top