私が次のようなことをした場合:
new_list = []
new_list.foo()
flake8 は、'list' メソッドではないため、foo() メソッドに対してエラーを返しません。
これは正常ですか、それとも何か設定する必要がありますか?
Flake8は、これらのツールのラッパーです。
- PyFlakes
- pep8
- ネッド・バッチェルダーのマッケイブ脚本
PyFlakesは、このタイプのエラーを検出することが期待される部分です。しかし、それはほとんど検出されません。その理由は次のとおりです。
Pyflakes は、Pylint や Pychecker よりも高速です。これは主に、Pyflakes が各ファイルの構文ツリーを個別に調べるだけだからです。結果として、Pyflakes はチェックできるものの種類がより制限されます。
flake8のドキュメントには、Pyflakes によって提供されるエラー コードが一覧表示されています。
code sample message
F401 module imported but unused
F402 import module from line N shadowed by loop variable
F403 ‘from module import *’ used; unable to detect undefined names
F404 future import(s) name after other statements
F811 redefinition of unused name from line N
F812 list comprehension redefines name from line N
F821 undefined name name
F822 undefined name name in __all__
F823 local variable name ... referenced before assignment
F831 duplicate argument name in function definition
F841 local variable name is assigned to but never used
2 番目に PyCharm を推奨し、次に PyLint を推奨します。