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

Posted

技术标签:

【中文标题】pylint:使用可能未定义的循环变量\'n\'【英文标题】:pylint: Using possibly undefined loop variable 'n'pylint:使用可能未定义的循环变量'n' 【发布时间】:2011-01-21 14:33:34 【问题描述】:

皮林特说

W:6:使用可能未定义的循环变量'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。

【问题讨论】:

【参考方案1】:

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

【讨论】:

emm...是的,很简单【参考方案2】:

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

【讨论】:

以上是关于pylint:使用可能未定义的循环变量'n'的主要内容,如果未能解决你的问题,请参考以下文章

循环外未定义的变量[重复]

循环时多个未定义变量的问题

变量未定义问题

Python语言规范

Python语言规范

Blade:Foreach 循环内未定义的变量