Python, словарь и INT ошибка - PullRequest
0 голосов
/ 15 февраля 2009

У меня очень неприятная проблема с питоном. В этом коде

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

Это очень раздражает, так как я попробовал несколько тестовых случаев и не смог воспроизвести ошибку, но это происходит очень часто, когда я запускаю полный код. Код читает данные из базы данных, посещает сайты и т. Д., Поэтому мне сложно просматривать данные, поскольку он читает из нескольких источников и зависит от изменений, вносимых сторонними организациями (веб-сайты).

Что может быть за ошибка?

Ответы [ 2 ]

5 голосов
/ 15 февраля 2009
  1. Не используйте ключевое слово global в функции, если вы не хотите изменить привязку глобального имени.

  2. Поиск 'sleepTime =' в вашем коде. В какой-то момент вашей программы вы связываете объект int с именем sleepTime.

1 голос
/ 15 февраля 2009

Ваш sleepTime является глобальной переменной. В какой-то момент в вашей программе его можно изменить на int.

Назначение элемента - это конструкция "foo [bar] = baz" в вашей функции.

...