python, dictionnaire et erreur int
-
23-08-2019 - |
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?
La solution
-
Ne pas utiliser de mot-clé
global
dans une fonction à moins que vous souhaitez modifier la liaison d'un nom global. -
Rechercher '
sleepTime =
' dans votre code. Vous liez un objet int au nom desleepTime
à 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.