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?

Foi útil?

Solução

  1. Não use palavra-chave global em uma função a menos que você gostaria de mudar a ligação de um nome global.

  2. Pesquise 'sleepTime =' em seu código. Está obrigatório um objeto int ao nome sleepTime 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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top