У меня есть функция, которую можно упростить до этого примера кода:
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
, поскольку я закончил работу с той, которую я определил в строке 3, начиная с print
?
Итак, это ложное срабатывание, или я действительно пишу очень плохой код?