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.

Foi útil?

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
scroll top