Pylint: Usando variável de loop possivelmente indefinida 'n'
Pergunta
Pylint diz
W: 6: Using possibly undefined loop variable 'n'
Com este código:
iterator = (i*i for i in range(100) if i % 3 == 0)
for n, i in enumerate(iterator):
do_something(i)
print n
Porque se o iterador estiver vazio (por exemplo []) n for indefinido, ok. Mas eu gosto desse truque. Como usá -lo de uma maneira segura?
Eu acho que o uso do LEN (List (Iterator)) não é a melhor opção, porque você precisa fazer dois loops. Usando um contador e incrementando -o, acho que não é muito pitônico.
Solução
Você já considerou apenas inicializar n para nenhum antes de executar o loop?
Outras dicas
Definir um valor padrão para n
antes de o for
declaração:
iterator = (i*i for i in range(100) if i % 3 == 0)
n=None
for n, i in enumerate(iterator):
do_something(i)
print n
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow