2

当我使用attrs库创建类时, PyCharm 中的文档字符串显示 linting error unresolved attribute reference

另一方面,当我通常使用__init__方法创建类时。它没有显示这样的错误。

我无法弄清楚这个错误是由于attrsPyCharm 产生的,因为attrs默认情况下,mypy 类型检查具有所有必要的存根。使用attrs时,除了这次在文档字符串中,我找不到任何 linting 错误。


import attr


@attr.s
class UsingAttrs:
    """
    class created using attrs shows linting error.

    Attributes
    ----------
    attribute_with_attr : str
    """
    attribute_with_attr: str = attr.ib(default='some_string_value')


class NotUsingAttrs:
    """
    class created normally does not show linting error.

    Attributes
    ----------
    attribute_without_attr : str
    """
    attribute_without_attr: str

    def __init__(self, param='some string value'):
        self.attribute_without_attr = param

Linting 错误如下图所示——

在此处输入图像描述

任何帮助,将不胜感激。

4

1 回答 1

2

这是 PyCharm 中的一个错误。attrs对他们的分析无能为力,尤其是考虑到检查文档字符串完全是他们的功能。AFAIK 他们根本不在内部使用 mypy 并且必须自己重新实现所有内容。

PS你可以写只要attribute_with_attr: str = "some_string_value"你使用@attr.s(auto_attrib=True)

于 2020-01-07T09:59:09.830 回答