pylint是我找到的最好的这样的工具。由于Python的本质,很难对其进行静态分析,但它会捕获未定义的变量,基本类型错误,未使用的代码等。您需要调整配置文件,默认情况下它会输出许多我认为无用或有害的警告。
这里是我的.pylintrc处理警告沉默的一部分:
[MESSAGES CONTROL]
# Brain-dead errors regarding standard language features
# W0142 = *args and **kwargs support
# W0403 = Relative imports
# Pointless whinging
# R0201 = Method could be a function
# W0212 = Accessing protected attribute of client class
# W0613 = Unused argument
# W0232 = Class has no __init__ method
# R0903 = Too few public methods
# C0301 = Line too long
# R0913 = Too many arguments
# C0103 = Invalid name
# R0914 = Too many local variables
# PyLint's module importation is unreliable
# F0401 = Unable to import module
# W0402 = Uses of a deprecated module
# Already an error when wildcard imports are used
# W0614 = Unused import from wildcard
# Sometimes disabled depending on how bad a module is
# C0111 = Missing docstring
# Disable the message(s) with the given id(s).
disable=W0142,W0403,R0201,W0212,W0613,W0232,R0903,W0614,C0111,C0301,R0913,C0103,F0401,W0402,R0914