Question

J'ai un problème de python très frustrant. Dans ce code

fixedKeyStringInAVar = "SomeKey"

def myFunc(a, b):
    global sleepTime
    global fixedKeyStringInAVar
    varMe=int("15")
    sleepTime[fixedKeyStringInAVar] = varMe*60*1000
    #more code

Maintenant, cela fonctionne. Mais parfois, quand je lance cette fonction que je reçois

TypeError: 'int' object does not support item assignment

Il est extrêmement ennuyeux car j'ai essayé plusieurs cas de test et ne pouvait pas reproduire l'erreur, mais il arrive très souvent quand je lance le code complet. Le code lit les données à partir d'un db, les sites d'accès, etc. il est donc difficile pour moi de passer par les données car il lit à partir de plusieurs sources et dépend de la 3e entrée du parti qui change (sites web).

Qu'est-ce que cette erreur pourrait être?

Était-ce utile?

La solution

  1. Ne pas utiliser de mot-clé global dans une fonction à moins que vous souhaitez modifier la liaison d'un nom global.

  2. Rechercher 'sleepTime =' dans votre code. Vous liez un objet int au nom de sleepTime à un moment donné dans votre programme.

Autres conseils

Votre sleepTime est une variable globale. Il pourrait être modifié pour être un entier à un moment donné dans votre programme.

L'affectation de l'élément est la construction "foo [bar] = baz" dans votre fonction.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top