pylint:使用可能未定义的循环变量'n'
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。
Pylint says
W: 6: Using possibly undefined loop variable 'n'
... with this code:
iterator = (i*i for i in range(100) if i % 3 == 0)
for n, i in enumerate(iterator):
do_something(i)
print n
because if the iterator is empty (for example []
) n
is undefined, ok. But I like this trick. How to use it in a safe way?
I think that using len(list(iterator))
is not the best choice because you have to do two loops. I think that using a counter and incrementing it is not very pythonic.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您是否考虑过在运行循环之前仅将
n
初始化为None
?Have you considered merely initializing
n
toNone
before running the loop?在
for
语句之前定义n
的默认值:Define a default value for
n
before thefor
statement: