finden Wenn ich etwas tun:Python: flake8 kann nicht nicht exising Methode
new_list = []
new_list.foo()
flake8 keinen Fehler für foo() Methode zurückgeben, da es nicht eine ‚Liste‘ Methode.
Ist das normal oder muss ich etwas konfigurieren?
finden Wenn ich etwas tun:Python: flake8 kann nicht nicht exising Methode
new_list = []
new_list.foo()
flake8 keinen Fehler für foo() Methode zurückgeben, da es nicht eine ‚Liste‘ Methode.
Ist das normal oder muss ich etwas konfigurieren?
flake8
behandeln nicht das Problem, aber PyLint
nicht - gibt die no-member
Warnung:
$ pylint test.py
No config file found, using default configuration
************* Module test
C: 1, 0: Missing module docstring (missing-docstring)
C: 1, 0: Invalid constant name "new_list" (invalid-name)
E: 2, 0: Instance of 'list' has no 'foo' member (no-member)
Und würde die built-in to PyCharm code analyzer auch über das ungelöste Attribut warnen:
Ich benutze Emacs und nach dem Lesen Ihres Kommentars habe ich es eingerichtet, um auch Pyint zu verwenden und jetzt bekomme ich den Fehler. Vielen Dank! –
Flake8 ist ein Wrapper um diese Werkzeuge:
- Pyflakes
- PEP8
- McCabe Skript Ned Batchelder
PyFlakes ist der Teil, der Sie diese Art von Fehler zu erkennen erwarten könnte. Aber es erkennt sehr wenig, und es erklärt warum:
Pyflakes ist auch schneller als Pyint oder Pychecker. Dies liegt hauptsächlich daran, dass Pyflakes nur den Syntaxbaum jeder Datei einzeln untersucht. Infolgedessen ist Pyflakes in den Arten von Dingen, die es überprüfen kann, begrenzter.
Die flake8 Dokumentenliste die Fehlercodes von Pyflakes bereitgestellt:
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
Ich zweite Empfehlung für PyCharm, gefolgt von PyLint.
Sie fragen nach statischen Analysen, die in einer dynamischen Sprache sehr schwierig sind und sicherlich nicht in Betracht kommen, was pylint macht. –