python, dicionário e erro int
-
23-08-2019 - |
Pergunta
Eu tenho um problema python muito frustrante. Neste código
fixedKeyStringInAVar = "SomeKey"
def myFunc(a, b):
global sleepTime
global fixedKeyStringInAVar
varMe=int("15")
sleepTime[fixedKeyStringInAVar] = varMe*60*1000
#more code
Agora, isso funciona. Mas às vezes, quando eu executar esta função I get
TypeError: 'int' object does not support item assignment
É extremamente irritante desde que eu tentei vários casos de teste e não poderia reproduzir o erro, mas isso acontece muito frequentemente quando eu executar o código completo. O código lê dados de um db, locais de acesso, etc. por isso é difícil para mim para percorrer os dados, uma vez que lê a partir de várias fontes e depende de entrada do 3o partido que muda (websites).
O que poderia esse erro ser?
Solução
-
Não use palavra-chave
global
em uma função a menos que você gostaria de mudar a ligação de um nome global. -
Pesquise '
sleepTime =
' em seu código. Está obrigatório um objeto int ao nomesleepTime
em algum momento de seu programa.
Outras dicas
Seu sleepTime é uma variável global. Pode ser alterado para ser um int em algum momento de seu programa.
A atribuição item é o "foo [bar] = baz" construção em sua função.