首页 > 解决方案 > PyCharm:如何在本地禁用缺少文档字符串检查

问题描述

问题

我在 Python 类中有一个functools.wraps用于分配文档字符串的方法。这是我使用的确切代码:

facade.py

#!/usr/bin/env python3

"""Facade."""


from functools import wraps

import back_end


@wraps(back_end.some_method)
def renamed_method(str_to_print):  # noinspection PyMissingOrEmptyDocstring
    back_end.some_method(str_to_print)

back_end.py

#!/usr/bin/env python3


"""Back End."""


def some_method(some_str: str) -> None:
    """Prints out a string.

    Args:
        some_str: A string to print

    """
    print(some_str)

PyCharm 检查警告Missing docstring该方法renamed_method。这就是我的样子:

我能看到什么

我添加# pylint: disable=C0111到同一行,它不会使警告消失。

我怎样才能让这个警告消失? 我不想取消选中全局检查。


我试过的

仅供参考,我使用PyCharm CE 2018.3.7. 我也刚刚更新PyCharm CE 2019.2.2并得到了相同的结果。我使用默认设置,只有我更改的内容是使用 Google 文档字符串格式并检查 Python 的所有检查选项。

#1:灯泡 --> 抑制选项

我看了这个答案:https ://stackoverflow.com/a/51148355/11163122

也记录在 PyCharm 的网站

而且我没有得到它承诺的抑制选项。

按下灯泡

#2: noinspection 评论

我也试过:(# noinspection PyMissingOrEmptyDocstring完整列表在这里)。这是完整的尝试:

@wraps(back_end.some_method)
def renamed_method(str_to_print):  # noinspection PyMissingOrEmptyDocstring
    back_end.some_method(str_to_print)

以及我所看到的图像:

无检查输出


在旁边

为什么要使用functools.wraps装饰器?参见外观模式

标签: pythonpycharmstatic-analysispylintcode-inspection

解决方案


PyCharm 允许您抑制(而不是禁用)检查。

您可以单击灯泡并选择“抑制此类”或手动添加:

# noinspection PyMissingOrEmptyDocstring

更多在这里https://www.jetbrains.com/help/pycharm/disabling-and-enabling-inspections.html#suppress-inspections

具体到给定的示例,这将不起作用:

@wraps(back_end.some_method)
def renamed_method(str_to_print):  # noinspection PyMissingOrEmptyDocstring
    back_end.some_method(str_to_print)

但这将:

# noinspection PyMissingOrEmptyDocstring
@wraps(back_end.some_method)
def renamed_method(str_to_print):
    back_end.some_method(str_to_print)

推荐阅读