pylint: 使用可能未定义的循环变量'n'

10

Pylint报告:

W:  6: Using possibly undefined loop variable 'n'

使用以下代码:

iterator = (i*i for i in range(100) if i % 3 == 0)

for n, i in enumerate(iterator):
    do_something(i)

print n

因为如果迭代器为空(例如[]n是未定义的,好的。 但我喜欢这个技巧。 如何以安全的方式使用它?

我认为使用len(list(iterator))不是最佳选择,因为您必须执行两个循环。 我认为使用计数器并递增它不是非常pythonic。

2个回答

15

您是否考虑在运行循环之前仅将n初始化为None


1
嗯...是的,这非常简单。 - Ruggero Turra

5

for语句之前为n定义一个默认值:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接