このコード サンプルに簡略化できる関数があります。
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変数が実際に2回使用されていることですが、スコープが異なるため、報告されるべきではありませんよね?
また、2 番目のループがなかったitemとしても、3 行目で定義したprint?
それで、これは偽陽性ですか、それとも私は本当に非常に貧弱なコードを書いていますか?