Pylint会抛出某些文件缺少文档字符串的错误。我尝试将docstrings添加到每个类,方法和函数,但似乎Pylint还检查文件应该在文档字符串的开头。我可以以某种方式禁用它吗?我希望收到类,函数或方法中缺少docstring的通知,但对于文件来说,文件字符串不应该是强制性的。
(在专有源文件的开头是否有一个法律术语的术语?任何例子?我不知道是否可以单独发布这样一个小问题。)
答案 0 :(得分:49)
Python模块有一个文档字符串很好,解释了模块的功能,它提供了什么,以及如何使用类的示例。这与您经常在文件开头提供版权和许可信息的注释不同,IMO不应该在文档字符串中(有些人甚至认为它们应该完全消失,参见例如。http://hackerboss.com/get-rid-of-templates/)
Pylint没有单独的代码用于可以发生文档字符串的各个位置,因此您所能做的就是禁用C0111。问题是,如果你在模块范围禁用它,那么它将在模块中的任何地方被禁用(即你不会得到任何C行缺少函数/类/方法docstring。这可能是不好的,你可能想要如果它困扰你,请为此pylint issue on github做出贡献。
所以我建议添加一些小的缺失文档字符串,例如:
"""
high level support for doing this and that.
"""
很快,您将找到有用的东西放在那里,例如提供如何使用模块的各种类/函数的示例,这些类/函数不一定属于类/函数的各个文档字符串(例如如何进行这些互动,或类似快速入门指南)。
答案 1 :(得分:22)
已经很晚了,但我发现它很有用。所以分享。 找到了这个here。
您可以添加" - 仅错误"用于禁用警告的pylint标志。
要执行此操作,请转到设置。编辑以下行:
"python.linting.pylintArgs": []
作为
"python.linting.pylintArgs": ["--errors-only"]
你很高兴去!
答案 2 :(得分:8)
我来寻找答案是因为,正如@cerin所说,在Django项目中,将模块文档字符串添加到django在创建新应用程序时自动生成的每个文件时都很麻烦且多余。
因此,作为pylint不允许您指定文档字符串类型的差异这一事实的解决方法,您可以这样做:
pylint */*.py --msg-template='{path}: {C}:{line:3d},{column:2d}: {msg}' | grep docstring | grep -v module
你必须更新msg-template,这样当你grep时你仍然会知道文件名。这将返回除模块之外的所有其他missing-docstring类型。
然后你可以解决所有这些错误,然后再运行:
pylint */*.py --disable=missing-docstring
答案 3 :(得分:7)
不。 Pylint目前不允许您区分doc-string警告。
但是,您可以使用flake8进行所有python代码检查以及doc-string扩展,以忽略此警告。
使用pip安装doc-string扩展名(内部使用pydocstyle)。
pip install flake8_docstrings
然后您可以使用--ignore D100
开关。例如flake8 file.py --ignore D100
答案 4 :(得分:6)
我认为修复相对容易而不会禁用此功能。
def kos_root():
"""Return the pathname of the KOS root directory."""
global _kos_root
if _kos_root: return _kos_root
您需要做的就是在每个函数中添加三重双引号字符串。
答案 5 :(得分:6)
只需将以下行放在要禁用这些警告的任何文件的开头。
# pylint: disable=missing-module-docstring
# pylint: disable=missing-class-docstring
# pylint: disable=missing-function-docstring
答案 6 :(得分:3)
对于pylint 2.4及更高版本,您可以使用以下三个子消息来区分各种missing-docstring
:
C0114
(missing-module-docstring
)C0115
(missing-class-docstring
)C0116
(missing-function-docstring
)因此以下.pylintrc
文件应该可以工作:
[MASTER]
disable=
C0114, # missing-module-docstring
答案 7 :(得分:2)
Edit "C:\Users\Your User\AppData\Roaming\Code\User\settings.json" and add
python.linting.pylintArgs lines at the end as shown below:
{
"team.showWelcomeMessage": false,
"python.dataScience.sendSelectionToInteractiveWindow": true,
"git.enableSmartCommit": true,
"powershell.codeFormatting.useCorrectCasing": true,
"files.autoSave": "onWindowChange",
"python.linting.pylintArgs": [
"--load-plugins=pylint_django",
"--errors-only"
],
}
答案 8 :(得分:1)
(1)CTRL + SHIFT + P (2)然后键入并单击>首选项:配置特定于语言的设置 (3)然后在代码后输入python
{
"python.linting.pylintArgs": [
"--load-plugins=pylint_django","--errors-only"
],
}
答案 9 :(得分:1)
就我而言,使用pylint 2.6.0,即使在我的missing-module-docstring
中显式禁用了missing-class-docstring
,missing-function-docstring
和.pylintrc
之后,丢失的文档字符串消息也不会消失。文件。最后,以下配置对我有用:
[MESSAGES CONTROL]
disable=missing-docstring,empty-docstring
显然,除非同时禁用两项检查,否则pylint 2.6.0仍将验证文档字符串。
答案 10 :(得分:0)
转到“ settings.json”并禁用python pydocstyle
"python.linting.pydocstyleEnabled": false