【发布时间】:2016-11-17 11:14:25
【问题描述】:
我有一个函数可以简化为这个代码示例:
def test_fun():
for i in range(17):
item = i
print(item)
for i in range(42):
items = [[i], [i], [i]]
flatten_items = [item[0] for item in items]
print(flatten_items)
当我运行 pyflakes (1.3.0) 或 flake8 (3.2.0) 时,我得到以下报告:
/tmp/test.py:7:38: F812 list comprehension redefines 'item' from line 3
我看到的是item这个变量确实用了两次,只是作用域不同,所以不应该报吧?
另外,即使没有第二个循环,为什么不应该允许我重写 item 变量,因为我已经完成了自 print 以来我在第 3 行定义的变量?
那么,这是误报,还是我真的在写一段很糟糕的代码?
【问题讨论】:
标签: python python-2.7 list-comprehension flake8 pyflakes