ошибка Python, словаря и целого числа
-
23-08-2019 - |
Вопрос
У меня очень неприятная проблема с Python.В этом коде
fixedKeyStringInAVar = "SomeKey"
def myFunc(a, b):
global sleepTime
global fixedKeyStringInAVar
varMe=int("15")
sleepTime[fixedKeyStringInAVar] = varMe*60*1000
#more code
Теперь это работает.НО иногда, когда я запускаю эту функцию, я получаю
TypeError: 'int' object does not support item assignment
Это очень раздражает, поскольку я попробовал несколько тестовых примеров и не смог воспроизвести ошибку, однако это случается очень часто, когда я запускаю полный код.Код читает данные из БД, получает доступ к сайтам и т. д.поэтому мне сложно просматривать данные, поскольку они считываются из нескольких источников и зависят от сторонних входных данных, которые изменяются (веб-сайты).
Что это может быть за ошибка?
Решение
Не используйте
global
ключевое слово в функции, если только вы не хотите изменить привязку глобального имени.Искать '
sleepTime =
' в вашем коде.Вы привязываете объект int кsleepTime
name в какой-то момент вашей программы.
Другие советы
Ваше время сна — это глобальная переменная.В какой-то момент вашей программы его можно изменить на int.
Назначением элемента является конструкция «foo[bar] = baz» в вашей функции.